このトピックでは、データ伝送サービス (DTS) を使用して、セルフマネージド Oracle データベースから ApsaraDB RDS for MySQL インスタンスにデータを移行する方法について説明します。 DTS は、スキーマ移行、フルデータ移行、および増分データ移行をサポートしています。 セルフマネージド Oracle データベースから RDS インスタンスにデータを移行する場合、サポートされているすべての移行タイプを選択して、サービスの継続性を確保できます。
前提条件
ソースのセルフマネージド Oracle データベースと宛先の ApsaraDB RDS for MySQL インスタンスが作成されていること。
説明ApsaraDB RDS for MySQL インスタンスの作成方法の詳細については、「ApsaraDB RDS for MySQL インスタンスを作成する」をご参照ください。
ソースデータベースと宛先インスタンスのサポートされているバージョンの詳細については、「データ移行シナリオの概要」をご参照ください。
セルフマネージド Oracle データベースが ARCHIVELOG モードで実行されていること。 アーカイブログファイルにアクセスできること、およびアーカイブログファイルに適切な保持期間が設定されていること。 詳細については、「アーカイブREDOログファイルの管理」をご参照ください。
セルフマネージド Oracle データベースでサプリメンタルロギング機能が有効になっており、SUPPLEMENTAL_LOG_DATA_PK パラメータと SUPPLEMENTAL_LOG_DATA_UI パラメータが Yes に設定されていること。 詳細については、「サプリメンタルロギング」をご参照ください。
宛先の ApsaraDB RDS for MySQL インスタンスが作成されていること。 詳細については、「ApsaraDB RDS for MySQL インスタンスを作成する」をご参照ください。
制限事項
スキーマ移行中に、DTS はソースデータベースから宛先データベースに外部キーを移行します。
フルデータ移行と増分データ移行中に、DTS はセッションレベルで外部キーに対する制約チェックとカスケード操作を一時的に無効にします。 データ移行中にソースデータベースでカスケード更新および削除操作を実行すると、データの不整合が発生する可能性があります。
カテゴリ | 説明 |
ソースデータベースの制限事項 |
|
その他の制限事項 |
|
特別なケース | 宛先データベースが ApsaraDB RDS for MySQL インスタンスで実行されている場合は、次の制限事項に注意してください。
|
課金
移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
スキーマ移行とフルデータ移行 | 無料。 | 宛先データベースの アクセス方法 パラメータが パブリック IP アドレス に設定されている場合、インターネットトラフィック料金が発生します。 詳細については、「課金概要」をご参照ください。 |
増分データ移行 | 課金されます。詳細については、「請求の概要」をご参照ください。 |
移行タイプ
移行タイプ | 説明 |
スキーマ移行 | DTS は、オブジェクトのスキーマを宛先データベースに移行します。 DTS には、テーブルとインデックスのスキーマ移行に関して次の制限があります。
説明 DTS は、ビュー、シノニム、ストアドプロシージャ、関数、パッケージ、およびユーザー定義型などのオブジェクトのスキーマ移行をサポートしていません。 警告 このトピックでは、ソースデータベースと宛先データベースは異種データベースです。 スキーマ移行後、ソースデータベースと宛先データベースのスキーマに不整合が生じる場合があります。 データ型変換がビジネスに与える影響を評価することをお勧めします。 詳細については、「異種データベース間のデータ型マッピング」をご参照ください。 |
フルデータ移行 | DTS は、必要なオブジェクトの既存のデータをセルフマネージド Oracle データベースから宛先データベースに移行します。 |
増分データ移行 | フルデータ移行が完了すると、DTS はセルフマネージド Oracle データベースから REDO ログファイルを取得します。 次に、DTS はセルフマネージド Oracle データベースから宛先データベースに増分データを移行します。 増分データ移行により、データ移行中のセルフマネージドアプリケーションのサービス継続性が確保されます。 |
増分移行できる SQL 操作
操作タイプ | SQL 文 |
DML | INSERT、UPDATE、および DELETE |
DDL |
|
準備
セルフマネージド Oracle データベースにログオンし、データの収集に使用するアカウントを作成し、そのアカウントに権限を付与します。
データベースアカウントを作成済みで、そのアカウントに次の表に記載されている権限がある場合は、この手順をスキップできます。
データベース | スキーマ移行 | フルデータ移行 | 増分データ移行 |
セルフマネージド Oracle データベース | スキーマ所有者の権限 | スキーマ所有者の権限 | きめ細かい権限 |
ApsaraDB RDS for MySQL インスタンス | 宛先データベースへの書き込み権限 | ||
データベースアカウントを作成し、データベースアカウントに権限を付与するには、次の操作を実行します。
セルフマネージド Oracle データベース: データベースアカウントを準備する、CREATE USER、および GRANT
ApsaraDB RDS for MySQL インスタンス: アカウントを作成する および アカウント権限を変更する。
増分データを移行する必要がある場合は、アーカイブとサプリメンタルロギングを有効にして、データの増分変更を取得する必要もあります。 詳細については、「Oracle データベースを構成する」をご参照ください。
データ型マッピング
詳細については、「異種データベース間のデータ型マッピング」をご参照ください。
手順
次のいずれかの方法を使用してデータ移行ページに移動し、データ移行インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データの移行 をクリックします。
ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。
DMS コンソール
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、ポインターを に移動します。
[データ移行タスク] の右側のドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースと宛先データベースを構成します。 次の表にパラメーターを示します。
警告ソースデータベースと宛先データベースを構成した後、ページの上部に表示される [制限] を読むことをお勧めします。 そうしないと、タスクが失敗したり、データの不整合が発生したりする可能性があります。
セクション
パラメーター
説明
該当なし
タスク名
DTS タスクの名前。 DTS はタスク名を自動的に生成します。 タスクを識別しやすい有益な名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。
[ソースデータベース]
データベースタイプ
[Oracle] を選択します。
アクセス方法
ソースデータベースのアクセス方法。 この例では、[パブリック IP アドレス] が選択されています。
説明他のアクセス方法を選択する場合は、セルフマネージド Oracle データベースに必要な環境をセットアップする必要があります。 詳細については、「準備の概要」をご参照ください。
インスタンスリージョン
ソース Oracle データベースが存在するリージョン。
[ホスト名または IP アドレス]
セルフマネージド Oracle データベースへの接続に使用するエンドポイント。
[ポート番号]
セルフマネージド Oracle データベースのサービスポート番号。 デフォルト値: [1521]。
説明この例では、セルフマネージド Oracle データベースのサービスポートはインターネット経由でアクセスできる必要があります。
[Oracle の種類]
ソース Oracle データベースのアーキテクチャ。 [非 RAC インスタンス] を選択した場合は、[SID] パラメーターを構成する必要があります。
[RAC または PDB インスタンス] を選択した場合は、[サービス名] パラメーターを構成する必要があります。
この例では、[非 RAC インスタンス] が選択されています。
データベースアカウント
ソース Oracle データベースのアカウント。 アカウントに必要な権限の詳細については、このトピックの「準備」セクションを参照してください。
データベースパスワード
データベースインスタンスへのアクセスに使用するパスワード。
[宛先データベース]
データベースタイプ
[MySQL] を選択します。
アクセス方法
[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
宛先 ApsaraDB RDS for MySQL インスタンスが存在するリージョン。
[RDS インスタンス ID]
宛先 ApsaraDB RDS for MySQL インスタンスの ID。
データベースアカウント
宛先 ApsaraDB RDS for MySQL インスタンスのデータベースアカウント。 アカウントに必要な権限の詳細については、このトピックの「準備」セクションを参照してください。
データベースパスワード
データベースインスタンスへのアクセスに使用するパスワード。
暗号化
ソースデータベースインスタンスへの接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、[暗号化なし] または [SSL 暗号化] を選択します。 このパラメーターを [SSL 暗号化] に設定する場合は、DTS タスクを構成する前に、ApsaraDB RDS for MySQL インスタンスで SSL 暗号化を有効にする必要があります。 詳細については、「クラウド証明書を構成して SSL 暗号化を有効にする」をご参照ください。
ページの下部にある [接続テストと続行] をクリックし、表示される [DTS サーバーの CIDR ブロック] ダイアログボックスで 接続テスト をクリックします。
説明DTS サーバーの CIDR ブロックをソースデータベースと宛先データベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できるようにしてください。 詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。
移行するオブジェクトを構成します。
オブジェクト設定 ページで、移行するオブジェクトを構成します。
パラメーター
説明
移行タイプ
完全データ移行のみを実行するには、[スキーマ移行] と [完全データ移行] を選択します。
データ移行中のサービス継続性を確保するには、[スキーマ移行]、[完全データ移行]、および [増分データ移行] を選択します。
説明[スキーマ移行] を選択しない場合は、宛先データベースにデータを受信するためのデータベースとテーブルが作成され、[選択済みオブジェクト] でオブジェクト名マッピング機能が有効になっていることを確認してください。
[増分データ移行] を選択しない場合は、データ移行中にソースデータベースにデータを書き込まないことをお勧めします。 これにより、ソースデータベースと宛先データベース間でデータの整合性が確保されます。
競合テーブルの処理モード
エラーの事前チェックと報告: 宛先データベースにソースデータベースのテーブルと同じ名前を使用するテーブルが含まれているかどうかを確認します。 ソースデータベースと宛先データベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格です。 それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。
説明ソースデータベースと宛先データベースに同じ名前のテーブルが含まれていて、宛先データベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、宛先データベースに移行されるテーブルの名前を変更できます。 詳細については、「オブジェクト名をマッピングする」をご参照ください。
エラーを無視して続行: ソースデータベースと宛先データベースで同じテーブル名の事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが次の潜在的なリスクにさらされる可能性があります。
ソースデータベースと宛先データベースのスキーマが同じで、データレコードのプライマリキーが宛先データベースの既存のデータレコードと同じである場合、次のシナリオが発生する可能性があります。
完全データ移行中、DTS はデータレコードを宛先データベースに移行しません。 宛先データベースの既存のデータレコードは保持されます。
増分データ移行中、DTS はデータレコードを宛先データベースに移行します。 宛先データベースの既存のデータレコードは上書きされます。
ソースデータベースと宛先データベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。 注意して進めてください。
ソースオブジェクト
ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。
アイコンをクリックして、オブジェクトを 選択中のオブジェクト セクションに追加します。選択中のオブジェクト
宛先インスタンスに移行するオブジェクトの名前を変更するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前をマッピングする」をご参照ください。
複数のオブジェクトの名前を一度に変更するには、[選択済みオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマッピングする」をご参照ください。
説明オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトが移行に失敗する可能性があります。
WHERE 条件を指定してデータをフィルタリングするには、[選択済みオブジェクト] セクションでテーブルを右クリックします。 表示されるダイアログボックスで、条件を指定します。 詳細については、「フィルター条件を指定する」をご参照ください。
特定のデータベースまたはテーブルで実行された SQL 操作を増分移行するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、増分移行する SQL 操作を選択します。 増分移行できる SQL 文の詳細については、このトピックの「増分移行できる SQL 操作」セクションを参照してください。
次へ:詳細設定 をクリックして、詳細設定を構成します。
パラメーター
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、専用のクラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。 データ移行タスクの安定性を向上させる場合は、専用のクラスターを購入してください。 詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
接続失敗時の再試行時間の範囲。 データ移行タスクの開始後にソースデータベースまたは宛先データベースへの接続に失敗した場合、DTS は再試行時間の範囲内で直ちに接続を再試行します。 有効値: 10 ~ 1,440。 単位: 分。 デフォルト値: 720。 このパラメーターを 30 より大きい値に設定することをお勧めします。 指定された再試行時間の範囲内で DTS がソースデータベースと宛先データベースに再接続された場合、DTS はデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明同じソースデータベースまたは宛先データベースを共有する複数のデータ移行タスクに異なる再試行時間の範囲を指定した場合、後で指定した値が優先されます。
DTS が接続を再試行すると、DTS インスタンスの料金が発生します。 ビジネス要件に基づいて再試行時間の範囲を指定することをお勧めします。 また、ソースデータベースと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間の範囲。 たとえば、データ移行タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS は再試行時間の範囲内で直ちに操作を再試行します。 有効値: 1 ~ 1440。 単位: 分。 デフォルト値: 10。 このパラメーターを 10 より大きい値に設定することをお勧めします。 失敗した操作が指定された再試行時間の範囲内で正常に実行された場合、DTS はデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値よりも小さくする必要があります。
完全なデータ移行のためのスロットリングを有効化
完全データ移行のスロットリングを有効にするかどうかを指定します。 完全データ移行中、DTS はソースデータベースと宛先データベースの読み取りリソースと書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 ビジネス要件に基づいて、完全データ移行のスロットリングを有効にすることができます。 スロットリングを構成するには、1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成する必要があります。 これにより、宛先データベースサーバーの負荷が軽減されます。
説明移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ、このパラメーターを構成できます。
完全なデータ移行のスロットリングを有効化
増分データ移行のスロットリングを有効にするかどうかを指定します。 スロットリングを構成するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを構成する必要があります。 これにより、宛先データベースサーバーの負荷が軽減されます。
説明移行タイプ パラメーターで 増分データ移行 を選択した場合にのみ、このパラメーターを構成できます。
環境タグ
DTS インスタンスを識別するために使用される環境タグ。 ビジネス要件に基づいて環境タグを選択できます。 この例では、環境タグは追加されていません。
実際の書き込みコード
宛先データベースにデータを書き込むエンコード形式。 ビジネス要件に基づいてエンコード形式を選択します。
ETL の設定
抽出、変換、ロード (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETL とは」をご参照ください。 有効値:
[はい]: ETL 機能を構成します。 コードエディターにデータ処理文を入力できます。 詳細については、「データ移行タスクまたはデータ同期タスクで ETL を構成する」をご参照ください。
[いいえ]: ETL 機能を構成しません。
監視アラート
データ移行タスクのアラートを構成するかどうかを指定します。 タスクが失敗した場合、または移行レイテンシが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。 有効値:
[いいえ]: アラートを構成しません。
[はい]: アラートを構成します。 この場合、アラートしきい値と アラート通知設定 も構成する必要があります。 詳細については、「監視とアラートの構成」トピックの「DTS タスクの作成時に監視とアラートを構成する」セクションを参照してください。
[次のステップ: データ検証] をクリックして、データ検証タスクを構成します。
データ検証機能の使用方法の詳細については、「データ検証タスクを構成する」をご参照ください。
タスク設定を保存し、事前チェックを実行します。
関連する API 操作を呼び出して DTS タスクを構成するときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを移動し、OpenAPI パラメーターのプレビュー をクリックします。
パラメーターを表示する必要がない場合、またはすでに表示している場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ移行タスクを開始する前に、DTS は事前チェックを実行します。 タスクが事前チェックに合格した後でのみ、データ移行タスクを開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。 その後、事前チェックを再度実行します。
事前チェック中に項目に対してアラートがトリガーされた場合:
アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。 その後、事前チェックを再度実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されるメッセージで、[OK] をクリックします。 その後、[再チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
インスタンスを購入します。
[成功率] が [100%] になるまで待ちます。 その後、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、データ移行インスタンスの [インスタンスクラス] パラメーターを構成します。 次の表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
[リソースグループ]
データ移行インスタンスが属するリソースグループ。 デフォルト値: [デフォルトのリソースグループ]。 詳細については、「Resource Management とは」をご参照ください。
インスタンスクラス
DTS は、移行速度が異なるインスタンスクラスを提供します。 ビジネスシナリオに基づいてインスタンスクラスを選択できます。 詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。
チェックボックスをオンにして、[データ伝送サービス (従量課金制) サービス規約] を読んで同意します。
[購入して開始] をクリックします。 表示されるメッセージで、[OK] をクリックします。
[データ移行] ページでタスクの進捗状況を確認できます。
説明データ移行タスクを増分データの移行に使用できない場合、タスクは自動的に停止します。 [完了] が [ステータス] セクションに表示されます。
データ移行タスクを増分データの移行に使用できる場合、タスクは自動的に停止しません。 増分データ移行タスクは停止または完了しません。 [実行中] が [ステータス] セクションに表示されます。