Data Transmission Service (DTS) は、PolarDB for PostgreSQL から自己管理 Oracle データベースへのデータ移行を実行し、データ逆流および機能テストを可能にします。
前提条件
- ソースの PolarDB for PostgreSQL クラスター内で移行対象となる各テーブルには、プライマリキーまたは UNIQUE NOT NULL インデックスが存在する必要があります。
- 自己管理 Oracle データベースのバージョンは、9i、10g、11g、12c、18c、または 19c である必要があります。
- 自己管理 Oracle データベース内に必要なスキーマ(テーブルなど)が作成済みである必要があります。
- 自己管理 Oracle データベースは、ソース PolarDB for PostgreSQL データベースよりもストレージ容量が大きいです。
制限事項
- このシナリオでは、DTS は完全なデータ移行および増分データ移行のみをサポートします。スキーマ移行はサポートされていません。
- 完全なデータ移行は、両方のデータベースの読み取りおよび書き込みリソースを消費するため、サーバー負荷が増加する可能性があります。移行前にパフォーマンスへの影響を評価し、オフピーク時間帯に移行を実施してください。
-
自己管理 Oracle データベースがリアルアプリケーションクラスター (RAC) アーキテクチャで構成され、かつ Alibaba Cloud の VPC 経由で DTS に接続される場合、Oracle RAC の Single Client Access Name (SCAN) IP アドレスおよび各ノードの仮想 IP アドレス (VIP) を VPC に接続し、ルートを設定する必要があります。これにより、DTS タスクが正常に実行されます。詳細については、「VPN Gateway を介してデータセンターを DTS に接続する」をご参照ください。
重要DTS コンソールでソース Oracle データベースを構成する際、Oracle RAC の SCAN IP アドレスをデータベースエンドポイントまたは IP アドレスとして指定できます。
- 各移行タスクは単一のデータベースからのデータ移行のみを処理します。複数のデータベースを移行する場合は、別々のタスクを作成してください。
- スキーマを移行した後にそのスキーマ内でテーブルを作成または名前変更する場合、そのテーブルへのデータ書き込み前に、
ALTER TABLE schema.table REPLICA IDENTITY FULL;を実行してください。説明schemaおよびtableは、実際のスキーマ名およびテーブル名に置き換えてください。 - DTS は遅延追跡のために、ソースデータベースに
dts_postgres_heartbeatという名前のハートビートテーブルを追加します。次の図にテーブルスキーマを示します。
- 増分移行中、ソースデータベース内の長時間トランザクションにより WAL レコードがクリアされず、WAL ファイルが蓄積してディスク領域を枯渇させる可能性があります。
課金
| 移行タイプ | タスク構成料金 | インターネットトラフィック料金 |
| 完全なデータ移行 | 無料です。 | データが Alibaba Cloud 外へインターネット経由で移行される場合に課金されます。「課金概要」をご参照ください。 |
| 増分データ移行 | 課金対象です。「課金概要」をご参照ください。 |
増分移行でサポートされる SQL 操作
INSERT、UPDATE、DELETE
必要なデータベースアカウント権限
| データベース | 必要な権限 |
| PolarDB for PostgreSQL | 特権アカウントの権限 |
| 自己管理 Oracle データベース | スキーマ所有者の権限 |
操作手順
-
DTS コンソールにログインします。
説明Data Management (DMS) コンソールに自動的にリダイレクトされた場合は、右下の
アイコンをクリックし、その後
をクリックしてクラシック DTS コンソールに戻ることができます。 -
左側のナビゲーションウィンドウで、データの移行 をクリックします。
-
移行タスク ページの上部で、宛先クラスターのリージョンを選択します。
-
ページ右上隅で、移行タスクの作成 をクリックします。
- ソースデータベースおよびターゲットデータベースを構成します。
セクション パラメーター 説明 該当なし タスク名 DTS がタスク名を自動生成します。タスクを簡単に識別できるよう、わかりやすい名前を指定してください。名前に一意性は不要です。 ソースデータベース インスタンスタイプ PolarDB を選択します。 インスタンスリージョン ソースの PolarDB for PostgreSQL クラスターが配置されているリージョンを選択します。 PolarDB インスタンス ID ソースの PolarDB for PostgreSQL クラスターの ID を選択します。 データベースアカウント PolarDB for PostgreSQL クラスターのデータベースアカウントを入力します。必要な権限については、「必要なデータベースアカウント権限」をご参照ください。 データベースパスワード データベースアカウントのパスワードを入力します。 説明 ソースデータベースを設定した後、接続詳細が正しいことを確認するために、データベースのパスワード を 接続テスト の横でクリックします。接続に成功すると、合格 メッセージが表示されます。接続に失敗すると、失敗 メッセージが表示されます。チェック の横にある 失敗 をクリックし、診断レポートに基づいて設定を調整します。ターゲットデータベース インスタンスタイプ データベースアクセス方法を選択します。本例では [パブリック IP アドレスを持つユーザー管理データベース] を使用します。 説明 自己管理データベースで異なるインスタンスタイプを使用している場合は、「事前準備の概要」に記載された準備作業を実施してください。インスタンスリージョン このパラメーターは不要です。 データベースタイプ Oracle を選択します。 ホスト名または IP アドレス 自己管理 Oracle データベースにアクセスするために使用する IP アドレスです。本例ではパブリック IP アドレスを使用します。 ポート番号 データベースのサービスポートです。本例では 1521 を入力します。 インスタンスタイプ - Non-RAC Instance を選択する場合、SID も指定する必要があります。
- RAC または PDB インスタンス を選択する場合、サービス名 も指定する必要があります。
SID 宛先データベースのシステム ID (SID) です。 データベースアカウント 自己管理 Oracle データベースのデータベースアカウントを入力します。必要な権限については、「必要なデータベースアカウント権限」をご参照ください。 データベースパスワード データベースアカウントのパスワードを入力します。 説明 ターゲットデータベースの構成後、接続テスト の横にある データベースのパスワード をクリックして、接続情報が正しいことを確認します。接続が成功すると 合格 メッセージが表示されます。接続に失敗した場合は 失敗 メッセージが表示されます。チェック の横にある 失敗 をクリックし、診断レポートに基づいて設定を調整してください。 - ページ右下隅で、[ホワイトリスト設定と次へ] をクリックします。
ソースまたはターゲットデータベースが ApsaraDB RDS for MySQL や ApsaraDB for MongoDB などの Alibaba Cloud データベースインスタンスの場合、DTS は対応するリージョンの DTS サーバーの IP アドレスを自動的にインスタンスの IP アドレスホワイトリストに追加します。データベースが ECS インスタンス上の自己管理データベースの場合、DTS は対応するリージョンの DTS サーバーの IP アドレスを ECS インスタンスのセキュリティルールに自動的に追加します。また、自己管理データベースが ECS インスタンスからのアクセスを許可していることを確認する必要があります。データベースが複数の ECS インスタンスにわたってクラスター化されている場合、対応するリージョンの DTS サーバーの IP アドレスを各 ECS インスタンスのセキュリティルールに手動で追加する必要があります。データベースがオンプレミスデータセンターまたは他のクラウドプラットフォーム上にある場合、対応するリージョンの DTS サーバーの IP アドレスを手動で追加してアクセスを許可する必要があります。DTS サーバーの IP アドレス範囲については、「DTS サーバーの IP アドレス範囲」をご参照ください。警告
DTS サーバーのパブリック IP アドレスを追加すると、セキュリティリスクが発生する可能性があります。本プロダクトをご利用になることで、これらのリスクを認識し、受け入れるものとします。強力なパスワード、ポート制限、API 認証、ネットワークセグメントの定期的なレビュー、または Express Connect、VPN Gateway、Smart Access Gateway を使用した非公開接続などの基本的なセキュリティ対策を実施してください。
- 移行タイプ、移行ポリシー、および移行対象オブジェクトを選択します。
設定項目 説明 オブジェクトの名前変更の有無 オブジェクト名マッピング機能を使用して、移行後のオブジェクトを宛先インスタンス内で名前変更します。「データベース、テーブル、およびカラムのマッピング」をご参照ください。 ソースまたはターゲットデータベースへの接続失敗時の再試行時間範囲の指定 デフォルトでは、DTS はソースまたはターゲットデータベースへの接続失敗時に最大 720 分間(12 時間)再試行します。この再試行期間はカスタマイズ可能です。指定された期間内に DTS が再接続した場合、タスクは再開されます。それ以外の場合はタスクが失敗します。 説明 再試行期間中も DTS インスタンスに対して課金されます。ビジネス要件に基づいてこの値を設定し、データベースが利用不可になった場合は速やかにインスタンスをリリースしてください。 構成が完了したら、ページ右下隅で [事前チェックと開始] をクリックします。
説明-
移行タスク開始前に、DTS は事前チェックを実行します。事前チェックに合格した場合にのみ、タスクを開始できます。
-
事前チェックに失敗した場合は、失敗した項目の横にある
アイコンをクリックして詳細を表示します。-
指示に従って問題を修正し、再度事前チェックを実行してください。
-
警告項目を修正する必要がない場合は、無視 を選択し、その後 [警告を無視して事前チェックを再実行] をクリックして、再度事前チェックを実行できます。
-
-
-
タスクが事前チェックに合格したら、次へ をクリックします。
-
表示される [設定の確認] ダイアログボックスで、インスタンスクラス を選択し、[Data Transmission Service (従量課金) サービス利用規約] チェックボックスをオンにします。
- 購入して起動 をクリックして、移行タスクを開始します。
- 完全なデータ移行
完全なデータ移行中は、タスクを手動で停止しないでください。そうしないと、移行されたデータが不完全になる可能性があります。タスクが自動的に停止するまでお待ちください。
- 完全および増分データ移行を含むタスクの場合:
タスクは自動的に停止しません。手動で停止する必要があります。
重要 オフピーク時間帯またはビジネスをターゲットデータベースに切り替える前にタスクを停止してください。- 増分データ移行 にタスクの進捗が変化し、ステータスが 遅延なし と表示されるまで待ちます。その後、数分間ソースデータベースへの書き込みを停止します。増分データ移行 ステータスに一時的に遅延が表示される場合があります。
- 増分データ移行 ステータスが 遅延なし に戻ったら、手動でタスクを停止します。
- 完全なデータ移行