Data Transmission Service (DTS) を使用して、自己管理 Oracle データベースから PolarDB for PostgreSQL (Compatible with Oracle) クラスターにデータを移行します。
前提条件
移行元の自己管理 Oracle データベースと移行先の PolarDB for PostgreSQL (Compatible with Oracle) クラスターが作成されていること。
説明PolarDB for PostgreSQL (Compatible with Oracle) クラスターの作成方法の詳細については、「PolarDB for PostgreSQL (Compatible with Oracle) クラスターの作成」をご参照ください。
サポートされているソースデータベースとターゲットクラスターのバージョンについては、「移行ソリューションの概要」をご参照ください。
自己管理 Oracle データベースでアーカイブログモードが有効になっており、アーカイブログファイルの適切な保持期間が設定され、アーカイブログファイルにアクセスできること。 詳細については、「ARCHIVELOG」をご参照ください。
自己管理 Oracle データベースで補足ログが有効になっており、`supplemental_log_data_pk` および `supplemental_log_data_ui` パラメーターが YES に設定されていること。 詳細については、「Supplemental Logging」をご参照ください。
データ移行を実行する前に、Oracle ソースに対する DTS の機能と制限事項を理解し、ADAM を使用してデータベース評価を実行することを推奨します。 これにより、スムーズなクラウド移行が保証されます。 詳細については、「Oracle データベースの制限事項と準備」および「データベース評価の概要」をご参照ください。
制限事項
タイプ | 説明 |
ソースデータベースの制限事項 |
|
その他の制限事項 |
|
移行タイプ
移行タイプ | 説明 |
スキーマ移行 | DTS は、移行オブジェクトのスキーマ定義をターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスターに移行します。 サポートされているオブジェクトタイプには、テーブル、ビュー、シノニム、トリガー、ストアドプロシージャ、ストアドファンクション、パッケージ、およびユーザー定義型が含まれます。 説明 このシナリオではトリガーはサポートされていません。 潜在的なデータの不整合を防ぐために、ソースデータベースからトリガーを削除してください。 詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクを設定する」をご参照ください。 |
完全データ移行 | DTS は、移行オブジェクトのすべての既存データを自己管理 Oracle データベースから PolarDB for PostgreSQL (Compatible with Oracle) クラスターに移行します。 説明 スキーマ移行と完全データ移行が完了するまで、移行オブジェクトに対して DDL 操作を実行しないでください。 そうしないと、移行が失敗する可能性があります。 |
増分データ移行 | 完全データ移行後、DTS は自己管理 Oracle データベースの Redo ログから進行中の変更をキャプチャし、これらの変更をターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスターにレプリケーションします。 増分データ移行により、Oracle データベースから PolarDB for PostgreSQL (Compatible with Oracle) クラスターへのシームレスな移行が、最小限のアプリケーションダウンタイムで可能になります。 |
増分移行のための SQL 操作
操作タイプ | SQL ステートメント |
DML | INSERT、UPDATE、および DELETE |
DDL |
|
前提条件
移行する自己管理 Oracle データベースにログインし、データ収集用のアカウントを作成し、そのアカウントに必要な権限を付与します。
以下にリストされている権限を持つアカウントをすでに作成している場合は、このステップをスキップできます。
データベース | スキーマ移行 | 完全データ移行 | 増分データ移行 |
自己管理 Oracle データベース | スキーマオーナー権限 | スキーマオーナー権限 | 詳細な権限が必要 |
PolarDB for PostgreSQL (Compatible with Oracle) クラスター | スキーマオーナー権限 | ||
データベースアカウントを作成し、権限を付与するには:
自己管理 Oracle データベースについては、「データベースアカウントの準備」、「CREATE USER」、および「GRANT」をご参照ください。
PolarDB for PostgreSQL (Compatible with Oracle) クラスターについては、「データベースアカウントの作成」をご参照ください。
増分データを移行するには、アーカイブログと補足ログも有効にする必要があります。 詳細については、「データベース設定」をご参照ください。
操作手順
-
次のいずれかの方法で、ターゲットリージョンの移行タスクリストページに移動します。
DTS コンソールから
-
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
ページの左上隅で、移行インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
-
Data Management (DMS) コンソールにログインします。
-
トップメニューバーで、の順に選択します。
-
データ移行タスク の右側で、移行インスタンスが配置されているリージョンを選択します。
-
タスクの作成 をクリックして、タスク設定ページに移動します。
-
オプション:ページの右上隅で、新バージョンの設定ページを試してみる をクリックします。
説明-
すでに新しい設定ページにいる場合 (右上隅のボタンが 旧バージョンの設定ページに戻る の場合)、このステップをスキップできます。
-
新しい設定ページと古い設定ページのパラメーターは異なります。 新しい設定ページを使用することを推奨します。
-
ソースデータベースとターゲットデータベースを設定します。
警告ソースインスタンスと宛先インスタンスを選択した後、ページの上部に表示される制限を注意深くお読みになることを推奨します。 そうしないと、タスクが失敗したり、データの不整合が発生したりする可能性があります。
セクション
パラメーター
説明
N/A
タスク名
DTS は自動的にタスク名を生成します。 簡単に識別できるように、わかりやすい名前を指定することを推奨します。 名前は一意である必要はありません。
移行元データベース
既存の接続情報の選択
システムに追加されたデータベースインスタンス (新規作成または保存されたもの) を使用するには、ドロップダウンリストからデータベースインスタンスを選択します。 データベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名前です。
データベースインスタンスをシステムに追加していない場合、またはすでに追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。
データベースタイプ
Oracle を選択します。
アクセス方法
ソースデータベースがデプロイされている場所に基づいて方法を選択します。 この例では ECS 上の自己管理データベース を使用します。
説明自己管理データベースが別のタイプの場合は、対応する準備を完了する必要があります。 詳細については、「準備の概要」をご参照ください。
インスタンスのリージョン
ソース Oracle データベースが配置されているリージョンを選択します。
ECS インスタンス ID
ソース Oracle データベースをホストする ECS インスタンスの ID を選択します。
ポート番号
ソース Oracle データベースのサービスポートを入力します。 デフォルト値は 1521 です。
Oracle の型
Non-RAC Instance:このオプションを選択した場合は、SID も指定する必要があります。
RAC または PDB インスタンス:このオプションを選択した場合は、サービス名 も指定する必要があります。
この例では、RAC または PDB インスタンス と指定された サービス名 を使用します。
データベースアカウント
自己管理 Oracle データベースのデータベースアカウントを入力します。 権限要件については、「データベースアカウントの権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワードを入力します。
移行先データベース
既存の接続情報の選択
システムに追加されたデータベースインスタンス (新規作成または保存されたもの) を使用するには、ドロップダウンリストからデータベースインスタンスを選択します。 データベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名前です。
データベースインスタンスをシステムに追加していない場合、またはすでに追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。
データベースタイプ
PolarDB (Oracle と互換性) を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
ターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスターが配置されているリージョンを選択します。
インスタンス ID
ターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスターの ID を選択します。
データベース名
移行されたオブジェクトが保存されるターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスター内のデータベースの名前を入力します。
データベースアカウント
ターゲットの PolarDB for PostgreSQL (Compatible with Oracle) クラスターのデータベースアカウントを入力します。 権限要件については、「データベースアカウントの権限」をご参照ください。
データベースのパスワード
データベースアカウントのパスワードを入力します。
暗号化
要件に応じて 非暗号化 または SSL 暗号化 のいずれかを選択します。 SSL 暗号化 を選択した場合は、CA 証明書 をアップロードする必要があります。
-
設定が完了したら、ページ下部の 接続をテストして続行 をクリックします。 表示される DTS サーバーの CIDR ブロック ダイアログボックスで、接続テスト をクリックします。
説明DTS サービスの IP アドレスセグメントが、ソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加され、DTS サーバーからのアクセスが許可されていることを確認してください。 詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
タスクオブジェクトを設定します。
オブジェクト設定 ページで、移行するオブジェクトを設定します。
パラメーター
説明
移行タイプ
-
完全移行のみを実行する必要がある場合は、スキーマ移行 と 完全データ移行 の両方を選択します。
-
ダウンタイムなしで移行を実行するには、スキーマ移行、完全データ移行、および 増分データ移行 を選択します。
説明-
スキーマ移行 を選択しない場合は、データを受信するデータベースとテーブルがターゲットデータベースに存在することを確認する必要があります。 必要に応じて、選択中のオブジェクト ボックスのオブジェクト名マッピング機能を使用することもできます。
-
増分データ移行 を選択しない場合は、データ整合性を確保するために、データ移行中にソースインスタンスに新しいデータを書き込まないでください。
プライマリキーのないテーブル/一意のキーのないテーブルに非表示のプライマリキーを追加する
移行対象のテーブルにプライマリキーも一意キーもない場合は、○ を選択する必要があります。 DTS は、Oracle データベースの ROWID をターゲットテーブルの非表示のプライマリキー (非 null の一意キー) として使用し、データの重複を防ぎます。
説明このパラメーターは、移行タイプ で スキーマ移行 が選択され、かつ 完全データ移行 または 増分データ移行 の少なくとも一方が選択されている場合にのみ設定できます。
競合テーブルの処理モード
-
エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルが存在するかどうかを確認します。 同じ名前のテーブルが存在しない場合、事前チェックは合格します。 同じ名前のテーブルが存在する場合、事前チェック中にエラーが報告され、データ移行タスクは開始されません。
説明ターゲットデータベースのテーブルが同じ名前で、簡単に削除または名前変更できない場合は、ターゲットデータベースのテーブルの名前を変更できます。 詳細については、「オブジェクト名のマッピング」をご参照ください。
-
エラーを無視して続行:同じ名前のテーブルのチェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合やビジネスリスクが発生する可能性があります。 例:
-
テーブルスキーマが一致し、ターゲットデータベースのレコードがソースデータベースのレコードと同じプライマリキー値を持つ場合:
-
完全移行中、DTS はターゲットデータベースのレコードを保持します。 ソースデータベースのレコードは移行されません。
-
増分移行中、DTS はターゲットデータベースのレコードを保持しません。 ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。
-
-
テーブルスキーマが一致しない場合、一部の列のデータのみが移行されるか、移行が失敗する可能性があります。 注意して進めてください。
-
ソースオブジェクト
ソースオブジェクト ボックスで、移行するオブジェクトをクリックし、
をクリックして 選択中のオブジェクト ボックスに移動します。選択中のオブジェクト
宛先インスタンスに移行するオブジェクトの名前を変更するには、[選択したオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「個別のテーブル列マッピング」をご参照ください。
一度に複数のオブジェクトの名前を変更するには、[選択したオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマッピングする」をご参照ください。
説明オブジェクト名マッピング機能を使用すると、名前が変更されたオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。
WHERE 句を使用してデータをフィルタリングするには、選択中のオブジェクト パネルでテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を指定します。 詳細については、「フィルター条件の設定」をご参照ください。
データベースまたはテーブルレベルで増分データ移行の SQL 操作を選択するには、選択中のオブジェクト パネルで目的のオブジェクトを右クリックし、表示されるダイアログボックスで SQL 操作を選択します。
-
詳細設定へ をクリックして、詳細パラメーターを設定します。
パラメーター
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、選択する必要はありません。 DTS 移行タスクを実行するために、特定の仕様の専用クラスターを購入できます。 詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
移行タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続の再試行を開始します。 デフォルトの再試行時間は 720 分です。 再試行時間は 10 分から 1440 分までカスタマイズできます。 30 分以上に設定することを推奨します。 指定された時間内に DTS がソースおよびターゲットデータベースに再接続すると、移行タスクは自動的に再開されます。 そうでない場合、タスクは失敗します。
説明-
同じソースまたはターゲットを共有する複数の DTS インスタンスの場合、ネットワークの再試行時間は最後に作成されたタスクの設定によって決まります。
-
接続再試行期間中はタスクに課金されるため、ビジネスニーズに基づいて再試行時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
移行タスクが開始された後、ソースまたはターゲットデータベースで DDL または DML 実行例外などの非接続性の問題が発生した場合、DTS はエラーを報告し、すぐに操作の再試行を開始します。 デフォルトの再試行時間は 10 分です。 再試行時間は 1 分から 1440 分までカスタマイズできます。 10 分以上に設定することを推奨します。 指定された再試行時間内に関連する操作が成功すると、移行タスクは自動的に再開されます。 そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
完全なデータ移行のためのスロットリングを有効化
完全移行中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。 必要に応じて、完全移行タスクの速度制限を有効にすることができます。 1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定して、ターゲットデータベースの負荷を軽減できます。
説明-
この設定項目は、移行タイプ で 完全データ移行 を選択した場合にのみ利用できます。
-
移行インスタンスの実行後に 完全移行速度を調整することもできます。
完全なデータ移行のスロットリングを有効化
必要に応じて、増分移行タスクの速度制限を設定することもできます。 1 秒あたりの増分移行の行数 RPS と 1 秒あたりの増分移行データ量 (MB) BPS を設定して、ターゲットデータベースの負荷を軽減できます。
説明-
この設定項目は、移行タイプ で 増分データ移行 を選択した場合にのみ利用できます。
-
移行インスタンスの実行後に 増分移行速度を調整することもできます。
環境タグ
ビジネス要件に基づいてインスタンスを識別するために環境タグを選択できます。 この例ではタグは選択されていません。
実際の書き込みコード
ビジネス要件に基づいて、ターゲットにデータを書き込むための文字コードを選択できます。
ETL 機能の設定
抽出、変換、ロード (ETL) 機能を有効にするかどうかを選択します。 詳細については、「ETL とは」をご参照ください。 有効な値:
-
○:ETL 機能を有効にします。 コードエディタにデータ処理ステートメントを入力します。 詳細については、「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。
-
×:ETL 機能を無効にします。
監視アラート
ビジネスニーズに基づいて、アラートを設定し、アラート通知を受信するかどうかを選択します。
-
×:アラートを設定しません。
-
○:アラートのしきい値とアラート通知を設定してアラートを設定します。 移行が失敗した場合、またはレイテンシがしきい値を超えた場合、システムはアラート通知を送信します。
-
-
[次へ:データ検証] をクリックして、データ検証タスクを設定します。
データ検証機能の詳細については、「データ検証の設定」をご参照ください。
-
設定が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
次:タスク設定の保存と事前チェック ボタンにポインターを合わせ、表示されるバブルで OpenAPI パラメーターのプレビュー をクリックすると、API オペレーションを呼び出す際にこのインスタンスを設定するためのパラメーターを表示できます。
説明-
移行タスクが開始される前に、DTS は事前チェックを実行します。 タスクは、事前チェックに合格した後にのみ開始されます。
-
事前チェックが失敗した場合は、失敗したチェック項目の横にある 詳細を表示 をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行します。
-
事前チェック中に警告が報告された場合:
-
無視できないチェック項目については、失敗した項目の横にある 詳細を表示 をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行します。
-
無視できるチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 をクリックして、アラート項目をスキップし、再度事前チェックを実行できます。 警告を無視することを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
-
-
インスタンスを購入します。
-
「成功率」が 100% の場合、「次:インスタンスの購入」をクリックします。
-
購入 ページで、データ移行インスタンスのリンク仕様を選択します。 詳細については、次の表をご参照ください。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
リソースグループの設定
インスタンスが属するリソースグループを選択します。デフォルト値は「default resource group」です。詳細については、「Resource Management とは」をご参照ください。
インスタンスクラス
DTS は、異なるパフォーマンスレベルを持つ移行仕様を提供しています。リンク仕様は移行速度に影響します。ビジネスシナリオに応じて適切な仕様を選択してください。詳細については、「データ移行リンク仕様」をご参照ください。
-
設定が完了したら、Data Transmission Service (従量課金) 利用規約 を読んで選択します。
-
購入して起動 をクリックします。 表示される OK ダイアログボックスで、[OK] をクリックします。
データ移行タスク リストページで移行タスクの進行状況を表示できます。
説明-
移行タスクに増分移行が含まれていない場合、完全移行が完了すると自動的に停止します。 タスクが停止すると、その ステータス は 完了 に変わります。
-
移行タスクに増分移行が含まれている場合、自動的に停止しません。 増分移行タスクは実行を続けます。 増分移行タスクの実行中、タスクの ステータス は 実行中 です。
-
-
次のステップ
プライマリキーのないテーブル/一意のキーのないテーブルに非表示のプライマリキーを追加する オプションを ○ に設定した場合、DTS が追加した非表示のプライマリキーを手動で削除する必要があります。 ワークロードをターゲットデータベースに切り替えた後、DTS インスタンスを停止またはリリースする前に、完全データ移行 または 増分書き込み モジュールの 基本情報 タブに移動し、操作 列の 非表示プライマリキー列の削除 をクリックします。
非表示のプライマリキーを削除した後、データ整合性についてはお客様の責任となります。