このトピックでは、Data Transmission Service (DTS) を使用して、データ同期または移行インスタンスのターゲットデータベースのシーケンスの開始値を更新する方法について説明します。
背景情報
シーケンスは、テーブルの主キー値として使用される一意の昇順または降順の数値のセットを生成するために使用される特別なデータベースオブジェクトです。 データがターゲットデータベースに同期または移行された後のシーケンス変更によるプライマリキーの競合を回避するには、シーケンス値調整機能を使用します。 この機能を使用すると、ソースデータベース内のシーケンスの現在値を取得し、現在値にオフセットを追加し、調整した値をターゲットデータベース内の対応するシーケンスの開始値として使用できます。
10000のオフセットを指定したとします。 ソースデータベースのシーケンスの現在の値が12345の場合、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インスタンスが存在するリージョンを選択します。
DTSコンソール
DTSコンソールにログインします。
左側のナビゲーションウィンドウで、データ同期 または データの移行 をクリックします。
上部のナビゲーションバーで、DTSインスタンスが存在するリージョンを選択します。
DMSコンソール
説明実際の操作は、データ管理 (DMS) コンソールのモードとレイアウトによって異なります。 詳細については、「シンプルモード」および「DMSコンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
最初に
DMSコンソール。
上部のナビゲーションバーで、 または を選択します。
データ同期タスク または データ移行タスク の右側のドロップダウンリストから、DTSインスタンスが存在するリージョンを選択します。
DTSインスタンスを見つけて、インスタンスIDをクリックします。
ターゲットデータベースのシーケンスの開始値を更新します。
タスク管理 ページで、増分書き込み をクリックします。
基本情報 タブで、シーケンスの同期 をクリックします。
表示されるダイアログボックスで、シーケンスのオフセット値 パラメーターを指定します。
ダイアログボックスの下部で、同期 をクリックします。
結果を表示します。
更新が完了すると、同期されました メッセージが表示され、更新の前後のシーケンス値が表示されます。
閉じるをクリックします。