このトピックでは、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は完全データ移行と増分データ移行のみをサポートします。 DTSはスキーマ移行をサポートしていません。
- 完全データ移行中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。
自己管理型OracleデータベースがReal Application Cluster (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アドレスとして指定できます。
- データ移行タスクは、単一のデータベースからのみデータを移行できます。 複数のデータベースからデータを移行するには、データベースごとにデータ移行タスクを作成する必要があります。
- 移行するオブジェクトとしてスキーマを選択し、スキーマにテーブルを作成するか、RENAMEステートメントを実行してスキーマ内のテーブルの名前を変更する場合は、テーブルにデータを書き込む前に
ALTER table schema.table REPLICA IDENTITY FULL;
ステートメントを実行する必要があります。説明 上記のステートメントのschema
変数とtable
変数を、スキーマ名とテーブル名に置き換えます。 - データ移行のレイテンシを正確にするために、DTSは
dts_postgres_heartbeat
という名前のハートビートテーブルをソースデータベースに追加します。 次の図は、ハートビートテーブルのスキーマを示しています。 - ソースデータベースに実行時間の長いトランザクションがあり、タスクに増分データ移行が含まれている場合、実行時間の長いトランザクションが送信される前に生成されたWALログはクリアされないため、蓄積され、ソースデータベースのストレージ領域が不十分になります。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
フルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行中に同期できる SQL 操作
挿入、更新、および削除
データベースアカウントに必要な権限
データベース | 必要な権限 |
PolarDB PostgreSQL | 特権アカウントの権限 |
自己管理型Oracleデータベース | スキーマ所有者の権限 |
手順
にログインします。 DTSコンソール。
説明データ管理 (DMS) コンソールにリダイレクトされている場合は、にあるアイコンをクリックして、以前のバージョンのDTSコンソールに移動し。
左側のナビゲーションウィンドウで、[データ移行] をクリックします。
[移行タスク] ページの上部で、移行先クラスターが存在するリージョンを選択します。
ページの右上隅にある [移行タスクの作成] をクリックします。
- ソースデータベースとターゲットデータベースを設定します。
セクション パラメーター 説明 非該当 タスク名 DTSが自動的に生成するタスク名。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。 移行元データベース インスタンスタイプ 移行元ディスクのタイプを設定します。 [PolarDB] を選択します。 インスタンスリージョン ソースPolarDBクラスターが存在するリージョン。 PolarDBインスタンスID ソースPolarDB for PostgreSQLクラスターのID。 データベースアカウント ソースPolarDBクラスターのデータベースアカウント。 アカウントに必要な権限の詳細については、「データベースアカウントに必要な権限」をご参照ください。 データベースパスワード データベースアカウントのパスワードを設定します。 説明 ソースデータベースパラメーターを設定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認します。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示された場合は、[失敗] の横にある [チェック] をクリックして、チェック結果に基づいて情報を変更します。ターゲットデータベース インスタンスタイプ ターゲットデータベースのアクセス方法。 この例では、パブリックIPアドレスを持つユーザー作成データベースが選択されています。 説明 ターゲットの自己管理データベースが別のタイプの場合は、データベースに必要な環境を設定する必要があります。 詳細については、「準備の概要」をご参照ください。インスタンスリージョン 指定する必要はありません。 データベースエンジン ターゲットデータベースのタイプ。 [Oracle] を選択します。 Hostname or IP Address 自己管理型Oracleデータベースへのアクセスに使用されるIPアドレス。 この例では、パブリックIPアドレスが使用されます。 ポート番号 自己管理型Oracleデータベースのサービス・ポート番号。 この例では、1521が使用されます。 インスタンスタイプ - [非RACインスタンス] を選択した場合、SIDパラメーターを指定する必要があります。
- RACまたはPDBインスタンスを選択した場合、サービス名パラメーターを指定する必要があります。
SID ターゲットデータベースのシステムID (SID) 。 データベースアカウント 自己管理型Oracleデータベースのデータベース・アカウント。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。 データベースパスワード データベースアカウントのパスワードを設定します。 説明 ターゲットデータベースパラメーターを設定したら、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認します。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示された場合は、[失敗] の横にある [チェック] をクリックして、チェック結果に基づいて情報を変更します。 - ページの右下隅にある [ホワイトリストと次への設定] をクリックします。 警告
DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
- 移行タイプ、移行ポリシー、および移行するオブジェクトを選択します。
設定 説明 オブジェクトの名前を変更するかどうかを指定する オブジェクト名マッピング機能を使用して、移行先クラスターに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。 ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定 既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 指定された時間範囲内にDTSがソースデータベースとターゲットデータベースに再接続された場合、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。 説明 DTSがソースデータベースとターゲットデータベースへの再接続を試みる時間範囲内で、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースデータベースとターゲットデータベースがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。 ページの右下隅にある [事前チェック] をクリックします。
説明データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。
原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
タスクが事前チェックに合格したら、[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] を選択します。
- [購入と開始] をクリックして、データ移行タスクを開始します。
- フルデータ移行
フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 データ移行タスクが自動的に停止するまで待つことができます。
- 完全なデータ移行と増分データ移行
増分データ移行タスクは自動的に停止しません。 タスクを手動で停止する必要があります。
重要 データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードを移行先クラスターに切り替える前にタスクを停止できます。- 移行タスクのプログレスバーに [増分データ移行] と [移行タスクは遅延しません] が表示されるまで待ちます。 その後、ソースデータベースへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシがプログレスバーに表示される場合があります。
- 増分データ移行のステータスが [データ移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。
- フルデータ移行