SQL Anywhere データベースを Mobile Link サーバーと同期します。文自体に同期オプションを指定できます。
SYNCHRONIZE { PROFILE sync-profile-name [ MERGE sync-option [ ;... ] ] | USING sync-option [ ;... ] | START | STOP }
[ PORT port-number ] [ VERBOSITY { LOW | NORMAL | HIGH } ] [ TIMEOUT timeout ] [ USER user-name IDENTIFIED BY password ]
sync-option : string
sync-profile-name この同期に使用する同期プロファイルの名前。
MERGE 句 この句は、同期プロファイルオプションを追加または上書きするために使用します。
USING 句 この句は、同期プロファイルを使用しないで同期プロファイルオプションを指定するために使用します。
sync-option
1 つ以上の同期プロファイルオプションの値ペアをセミコロンで区切った文字列です。たとえば、'option1=value1;option2=value2'
のように記述します。
PORT 句 この句は、データベースサーバーが dbmlsync ユーティリティと通信するために使用するポート番号を指定するために使用します。デフォルトは 4433 です。
VERBOSITY 句 この句では、同期中に synchronize_results および synchronize_parameters 共有グローバルテンポラリテーブルに追加される情報量を指定します。
次に、各 VERBOSITY オプションで返されるクライアント API イベントのリストを示します。
オプション | 返されるイベント |
---|---|
LOW |
|
NORMAL (デフォルト) |
|
HIGH |
|
SYNCHRONIZE 文の VERBOSITY 句と、同期プロファイルに指定できる VERBOSITY オプションとを混同しないように注意してください。SYNCHRONIZE 文の VERBOSITY 句は、synchronize_results および synchronize_parameters テーブルに記録されるイベントの型を制御します。同期プロファイルの VERBOSITY オプションは、同期中に生成される DBSC_EVENTTYPE_INFO_MSG イベントの数を制御します。
SYNCHRONIZE PROFILE SalesData VERBOSITY NORMAL; |
SYNCHRONIZE PROFILE SalesData MERGE 'Verbosity=BASIC,ROW_DATA' VERBOSITY NORMAL; |
TIMEOUT 句 この句では、同期のキャンセルを試行するまでにデータベースサーバーが同期の完了を待機する時間を秒数で指定します。デフォルトは 240 秒です。
USER / IDENTIFIED BY 句 この句は、dbmlsync ユーティリティでデータベースを同期するために使用するデータベースユーザー ID とパスワードを指定するときに使用します。指定されるユーザー ID には、REMOTE DBA 権限または DBA 権限が必要です。デフォルトでは、同期には SYNCHRONIZE 文を実行したデータベース接続のユーザー ID が使用されます。
START 句 dbmlsync ユーティリティのサーバーモードでの実行を開始し、実行したままにします。同期は実行されません。短期間に複数の同期を実行している場合、この句を使用して、明示的に dbmlsync サーバーを起動して同期を実行し、STOP 句を使用して明示的に dbmlsync サーバーを停止することにより、パフォーマンスを向上させることができます。
STOP 句 以前に START 句を使用して起動した dbmlsync サーバーを停止します。同期は実行されません。
この文は、Dbmlsync C++ API を含む SQL Anywhere 用 Mobile Link クライアントがインストールされている場合にのみ使用できます。
データベースサーバーを実行できないすべてのプラットフォームで、 SQL Anywhere 用 Mobile Link クライアントは利用できません。サポートされるプラットフォームのリストについては、 http://www.sybase.com/detail?id=1061806を参照してください。
同期が完了したら、synchronize_results と synchronize_parameters 共有グローバルテンポラリテーブルに格納されている同期の結果を表示できます。synchronize_results と synchronize_parameters テーブルには、データベースが起動されて以降、SYNCHRONIZE 文で実行されたすべての同期の結果が格納されます。synchronize_results と synchronize_parameters テーブルは、データベースサーバーがシャットダウンするたびにトランケートされます。
synchronize_results テーブルには次のカラムが含まれます。
カラム名 | データ型 | 説明 |
---|---|---|
row_id | UNSIGNED BIGINT | ローがテーブルに挿入された順序を判断するために使用するテーブルのプライマリキー。 |
conn_id | UNSIGNED INT | イベントが synchronize_results テーブルに追加された時刻。 |
result_time | TIMESTAMP | イベントが synchronize_results テーブルに追加された時刻。 |
result_type | CHAR(128) | イベントの種類。 |
synchronize_results テーブルに表示される各イベントには、イベントの追加情報を含む関連パラメーターが存在することがあります。このパラメーターは、次のカラムを含む synchronize_parameters テーブルに格納されます。
カラム名 | データ型 | 説明 |
---|---|---|
row_id | UNSIGNED BIGINT | synchronize_results テーブルにある row_id カラムの外部キー。 この値を使用して、各パラメーターを属しているイベントに合わせる。 |
parm_id | UNSIGNED INT | パラメーターの 数値 ID を含める。1つ以上のパラメーターを持つイベントの場合は、この値を使用して、必要なパラメータの値を指定する。 |
parm_message | LONG VARCHAR | パラメーターに関する値。 |
過去または現在の同期の情報を表示するには、synchronize_results および synchronize_parameters テーブルに対して直接クエリを実行する代わりに、sp_get_last_synchronize_result システムプロシージャーを使用できます。
または、次の文を使用して、データベースサーバーの起動後に行われたすべての同期の結果を表示できます。
SELECT * FROM synchronize_results sr KEY JOIN synchronize_parameters sp ORDER BY sr.row_id , sp.parm_id |
synchronize_results と synchronize_parameters テーブルを使用すると、現在の接続とは別の接続に対する同期の進行状況をモニターできます。別の接続に対する同期の進行状況をモニターするには、次の手順に従います。
SELECT CONNECTION_PROPERTY 文を実行して、現在の接続の接続 ID を確認します。
SYNCHRONIZE 文を実行して同期を開始します。
別の接続で、use the sp_get_last_synchronize_results system プロシージャーを使用して、上で確認した接続 ID を使用した結果を取得します。
特定の接続で完了した同期または進行中の同期の結果を表示するには、sp_get_last_synchronize_results システムプロシージャーを使用します。
SYNCHRONIZE 文は、Ultra Light の SYNCHRONIZE 文に似ています。ただし、SQL Anywhere の SYNCHRONIZE 文は、dbmlsync ユーティリティをサーバーモードで起動して同期を実行します。Ultra Light の SYNCHRONIZE 文は、Ultra Light ランタイムを使用します。
データベースサーバーは Dbmlsync API クライアントとして機能し、TCP/IP を使用して dbmlsync サーバーと通信します。デフォルトでは、通信はポート 4433 で行われます。別のポートを指定するには、PORT 句を使用してください。
SYNCHRONIZE PROFILE 文と SYNCHRONIZE USING 文を使用して、同期を実行します。SYNCHRONIZE START と SYNCHRONIZE STOP 文を使用して、dbmlsync サーバーを起動または停止します。SYNCHRONIZE PROFILE 文または SYNCHRONIZE USING 文を実行すると、データベースサーバーはすでに実行中の dbmlsync サーバーへの接続を試みます。すでに実行中の dbmlsync サーバーが見つからない場合は、dbmlsync サーバーが起動します。同期が完了すると、データベースサーバーは起動した dbmlsync サーバーをシャットダウンします。すでに実行中の dbmlsync サーバーに文が接続した場合、dbmlsync サーバーはシャットダウンされません。複数の同期を実行しており、同期ごとに dbmlsync サーバーを起動または停止しないようにする場合は、SYNCHRONIZE START 文に続けて、複数の SYNCHRONIZE PROFILE 文または SYNCHRONIZE USING 文を実行し、最後に SYNCHRONIZE STOP 文を実行します。
REMOTE DBA 権限または DBA 権限
なし
SQL/2008 ベンダー拡張。
次の例は、Test1 という同期プロファイルで同期するための構文を示します。
SYNCHRONIZE PROFILE Test1; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |