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 には、SYS_RUN_REPLICATION_ROLE システムロールが必要です。デフォルトでは、同期には 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 文を実行した接続の接続 ID 番号。 |
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 番号を含みます。イベントに複数のパラメータが含まれる場合は、この値を使用して目的のパラメータを検索します。 |
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 文を実行します。
MANAGE REPLICATION システム権限または SYS_RUN_REPLICATION_ROLE システムロールを持っている必要があります。
なし
SQL/2008 ベンダー拡張。
次の例は、Test1 という同期プロファイルで同期するための構文を示します。
SYNCHRONIZE PROFILE Test1; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |