sp_setreplicate システム・プロシージャ、sp_setrepproc システム・プロシージャ、または ALTER TABLE 文を使用して、レプリケーションのテーブルを設定できます。テーブルは、単一の句の ALTER TABLE 文を使用し、プライマリ・データ・ソースとして識別されます。
ALTER TABLE table-name SET REPLICATE ON; |
REPLICATE ON を設定すると、トランザクション・ログに追加の情報が入ります。テーブルで UPDATE、INSERT、または DELETE アクションがあったときは必ず入ります。この追加の情報は、必要に応じて、SQL Anywhere Replication Agent がローの完全な更新前イメージをレプリケーション用に Replication Server へ送信するときに使用されます。
テーブル内のデータの一部だけをレプリケートする必要がある場合でも、テーブルに対する変更のすべてが Replication Server に送信されます。レプリケートするデータとレプリケートしなくてよいデータを区別するのは、Replication Server です。
1 つのローを更新、挿入または削除する場合、ローの更新前イメージがそのアクションの前のローの内容であり、更新後イメージがアクションの後のローの内容となります。INSERT の場合は、更新後イメージだけが送信されます (更新前イメージは空です)。DELETE の場合は、更新後イメージが空で、更新前イメージだけ送信されます。UPDATE の場合は、更新前イメージと更新されたイメージの両方が送信されます。
次のデータ型は、レプリケーション用にサポートされます。
データ型 | 説明 (Open Client/Open Server タイプ) |
---|---|
Exact integer データ型 | int、smallint、tinyint |
Exact decimal データ型 | decimal、numeric |
Approximate numeric データ型 | float (8 バイト)、real |
Money データ型 | money、smallmoney |
文字データ型 | char(n)、varchar(n)、text |
日付と時刻データ型 | datetime、smalldatetime |
バイナリ・データ型 | binary(n)、varbinary(n)、image |
Bit データ型 | bit |
SQL Anywhere は、NULL ではない、長さ 0 のデータをサポートします。ただし、長さが 0 の NULL 以外の varchar と binary データは、レプリケート・サイトに NULL としてレプリケートされます。
プライマリ・テーブルの中にサポートされないデータ型のカラムがある場合は、互換性があり、サポートされているデータ型を使用してレプリケーション定義を作成すれば、そのデータをレプリケートできます。たとえば、DOUBLE カラムをレプリケートするには、レプリケーション定義の中でそれを FLOAT と定義します。
大量に更新されたテーブルでは、レプリケーション・パフォーマンスが重大な影響を受けることがあります。レプリケーション・トラフィックに関連するパフォーマンス問題が発生したら、複写プロシージャの使用を考えてください。複写プロシージャは、個別のアクションではなく、プロシージャに対する呼び出しだけを送信するからです。
REPLICATE ON を設定すると、追加の情報がトランザクション・ログに送信されるので、このログはレプリケートしないデータベースの場合より早く大きくなります。
SQL Anywhere LTM は、Replication Server のレプリケート最少カラム機能をサポートします。この機能は、Replication Server で有効になります。
レプリケート最少カラムの詳細については、Replication Server のマニュアルを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |