Data Transmission Service (DTS) を使用して、同期または移行インスタンスのターゲットデータベース内のシーケンス値を更新し、シーケンスの変更によって引き起こされる主キー競合を防止します。
背景情報
シーケンスは、一意の昇順または降順の数値を生成するデータベースオブジェクトで、通常はプライマリキー値として使用されます。データの同期または移行後、シーケンスの変更によりターゲットデータベースで主キー競合が発生する可能性があります。シーケンス値調整機能は、ソースデータベースから現在のシーケンス値を読み取り、オフセットを加算した結果をターゲットデータベースに適用します。
たとえば、ソースデータベース内のシーケンスの現在値が 12345 で、オフセットを 10000 に設定した場合、DTS はターゲットデータベース内の対応するシーケンスの値を 22345 に更新します。
サポートされるデータベース
次の表において、PostgreSQL は、ApsaraDB RDS for PostgreSQL インスタンスおよび自主管理 PostgreSQL データベースの両方を指します。
|
ソース |
宛先 |
ドキュメント |
|
PostgreSQL |
PostgreSQL、PolarDB (Oracle と互換性)、PolarDB for PostgreSQL |
|
|
PolarDB for PostgreSQL |
PostgreSQL、PolarDB for PostgreSQL |
|
|
PolarDB (Oracle と互換性) |
PolarDB (Oracle と互換性) |
|
|
Oracle |
PolarDB (Oracle と互換性) |
前提条件
同期または移行インスタンスは、以下の条件を満たしている必要があります。
-
インスタンスは、増分タスクを含むデータ同期またはデータ移行インスタンスである必要があります。
-
インスタンスは、増分データ移行 または 増分データ同期 のフェーズに到達している必要があります。
-
インスタンスの ステータス が 実行中 または 一時停止中 である必要があります。
注意事項
-
この機能は、双方向同期インスタンスではサポートされていません。
-
デフォルトでは、DTS はソースデータベース内のシーケンス名と一致するターゲットデータベース内のシーケンスを更新します。
-
シーケンス値を更新した後にソースデータベースに増分データが書き込まれた場合、ターゲットのシーケンス値が不正確になる可能性があります。
操作手順
-
次のいずれかの方法で、該当リージョンのタスク一覧ページに移動します。
DTS コンソール
-
Data Transmission Service (DTS) コンソール にログインします。
-
左側のナビゲーションウィンドウで、データ同期 または データの移行 をクリックします。
-
ページ左上隅で、インスタンスが配置されているリージョンを選択します。
DMS コンソール
説明Data Management Service (DMS) コンソールのモードおよびレイアウトによって手順が異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
-
Data Management Service (DMS) コンソール にログインします。
-
メニューバーで、 または を選択します。
-
データ同期タスク または データ移行タスク の右側にあるドロップダウンリストから、インスタンスが配置されているリージョンを選択します。
-
-
ターゲットインスタンスを見つけ、インスタンス ID をクリックします。
-
ターゲットデータベースのシーケンス値を更新します。
-
タスク管理 ページで、増分書き込み タブをクリックします。
-
基本情報 タブで、シーケンスの同期 をクリックします。
-
表示されたダイアログボックスで、シーケンスのオフセット値 を設定します。
-
ダイアログボックスの下部で、同期 をクリックします。
-
-
結果を確認します。
タスクが完了すると、同期されました メッセージが表示され、更新前後のシーケンス値が示されます。
-
閉じる をクリックします。