Data Transmission Service (DTS) を使用して、アプリケーションの稼働を継続したまま、PolarDB-X 1.0 インスタンスから DataHub プロジェクトへスキーマおよび増分データをストリーム形式で移行します。
このソース・ターゲットの組み合わせでは、完全データ移行はサポートされていません。スキーマ移行および増分データ移行のみが利用可能です。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
PolarDB-X 1.0 インスタンス。詳細については、「PolarDB-X 1.0 インスタンスの作成」および「」をご参照ください。
DataHub の有効化および、移行データを受信するためのプロジェクトの作成。詳細については、「DataHub の使い始め」および「プロジェクトの管理」をご参照ください。
ソースとなる PolarDB-X 1.0 インスタンスでバイナリログが有効化されており、
binlog_row_imageがfullに設定されていること。以下の表に記載された権限を持つ PolarDB-X 1.0 データベースアカウント。権限の付与方法については、「アカウントの管理」をご参照ください。
| 移行タイプ | 必要な権限 |
|---|---|
| スキーマ移行 | SELECT |
| 増分データ移行 | 移行対象オブジェクトに対する読み取りおよび書き込み |
制限事項
ソースデータベース
テーブル数の制限: テーブルを移行対象として選択し、宛先テーブルまたはカラムの名前を変更する場合、1 つのタスクで最大 1,000 テーブルまでサポートされます。この上限を超えるとリクエストエラーが発生します。移行タスクを複数に分割するか、データベース全体を単一のオブジェクトとして移行してください。
読み取り専用インスタンス: 読み取り専用の PolarDB-X 1.0 インスタンスからのデータ移行はできません。
バイナリログの保持期間: バイナリログを 24 時間以上保持してください。DTS がバイナリログを読み取れない場合、タスクは失敗し、データ損失またはデータの不整合が発生する可能性があります。上記の要件に基づき、バイナリログの保持期間を適切に設定してください。設定が不適切な場合、Data Transmission Service (DTS) のサービスレベル合意 (SLA) では、サービスの信頼性およびパフォーマンスを保証しません。
移行中の禁止操作: 移行中にソースインスタンスの設定の変更、頻繁に更新されるテーブルの移行、シャードキーの変更、ソースオブジェクトに対する DDL 操作を実行しないでください。これらの操作により、移行タスクが失敗する可能性があります。
外部キー制約: スキーマ移行と増分データ移行を併用する場合、DTS はセッションレベルで外部キーに関する制約チェックおよびカスケード操作を無効化します。この期間中にソースデータベースでカスケード削除操作を実行すると、データの不整合が発生する可能性があります。
ネットワークタイプの変更: 移行中に PolarDB-X 1.0 インスタンスのネットワークタイプを変更する場合は、移行タスクのネットワーク接続設定を適宜更新してください。
スキーマのみの移行中の書き込み操作: 増分データ移行を伴わないスキーマ移行を実行する場合、データの不整合を防ぐため、移行中にソースデータベースへの書き込みを停止してください。
その他の制限事項
ソースおよびターゲットデータベースのパフォーマンスへの影響を軽減するため、非ピーク時間帯に移行を実行してください。
DTS は失敗したタスクを最大 7 日間自動的に再試行します。ワークロードをターゲットデータベースに切り替える前に、失敗したタスクを停止または解放するか、
REVOKEを実行して、ターゲットデータベースにおける DTS の書き込み権限を削除してください。これを実行しない場合、失敗したタスクが再開され、ターゲットデータがソースデータで上書きされる可能性があります。
注意事項
DTS は定期的にソースデータベース内の dts_health_check.ha_health_check テーブルを更新し、バイナリログの位置を進めます。
課金
| 移行タイプ | インスタンス構成料金 | インターネットトラフィック料金 |
|---|---|---|
| スキーマ移行 | 無料 | 無料 |
| 増分データ移行 | 有料。詳細については、「課金概要」をご参照ください。 | — |
サポートされる移行タイプ
[スキーマ移行]
DTS は、選択したソースオブジェクトのスキーマをターゲットの DataHub プロジェクトに移行します。スキーマ移行を選択した場合、ソースデータベースの外部キーも移行されます。
[増分データ移行]
初期のスキーマ移行が完了した後、DTS はソースデータベースから DataHub へ増分変更を継続的にキャプチャおよび移行します。これにより、移行中もアプリケーションを中断することなく継続して実行できます。
増分移行でサポートされる SQL 操作
| 操作タイプ | SQL ステートメント |
|---|---|
| DML | INSERT、UPDATE、DELETE |
| DDL | ADD COLUMN |
移行タスクの作成
ステップ 1:データ移行タスクページへ移動
Data Management (DMS) コンソール にログインします。
トップナビゲーションバーで、[DTS] をクリックします。
左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ移行] を選択します。
コンソールの操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。「シンプルモード」および「DMS コンソールのレイアウトおよびスタイルのカスタマイズ」をご参照ください。また、直接「新しい DTS コンソールのデータ移行タスクページ」にアクセスすることもできます。
ステップ 2:リージョンの選択
データ移行タスク の横にあるドロップダウンリストから、移行インスタンスが配置されているリージョンを選択します。
新しい DTS コンソールでは、左上隅のリージョンを選択します。
ステップ 3:ソースおよびターゲットデータベースの構成
[タスクの作成] をクリックし、ソースおよびターゲットデータベースを構成します。
ソースおよびターゲットインスタンスを選択した後、ページ上部に表示される [使用制限] の情報を確認してから、次の手順に進んでください。
ソースデータベースの設定
| パラメーター | 説明 |
|---|---|
| タスク名 | タスクの名前です。DTS が自動的に名前を割り当てます。タスクを容易に識別できるように、意味のある名前を指定してください。名前は一意である必要はありません。 |
| 既存の DMS データベースインスタンスを選択 | (任意)接続パラメーターを自動入力するために既存のインスタンスを選択するか、手動で構成する場合は空白のままにしてください。 |
| データベースタイプ | [PolarDB-X 1.0] を選択します。 |
| アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンスリージョン | ソース PolarDB-X 1.0 インスタンスが配置されているリージョンです。 |
| Alibaba Cloudアカウント間のデータ複製 | 同一アカウント内での移行の場合は、[いいえ] を選択します。 |
| [インスタンス ID] | ソース PolarDB-X 1.0 インスタンスの ID です。 |
| データベースアカウント | ソースインスタンスのデータベースアカウントです。必要な権限については、「前提条件」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワードです。 |
宛先データベース
| パラメーター | 説明 |
|---|---|
| [既存の DMS データベースインスタンスの選択] | (任意)接続パラメーターを自動入力するために既存のインスタンスを選択するか、手動で構成する場合は空白のままにしてください。 |
| データベースタイプ | [DataHub] を選択します。 |
| アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
| インスタンスリージョン | ターゲット DataHub プロジェクトが配置されているリージョンです。 |
| プロジェクト | ターゲット DataHub プロジェクトの ID です。 |
ステップ 4:接続性のテスト
[接続性のテストと続行] をクリックします。
DTS は、Alibaba Cloud データベースインスタンスまたは Elastic Compute Service (ECS) のセキュリティグループの IP アドレスホワイトリストに、自社サーバーの CIDR ブロックを自動的に追加します。
DTS サーバーの CIDR ブロックを IP アドレスホワイトリストまたはセキュリティグループルールに追加すると、データベースがセキュリティリスクにさらされる可能性があります。続行する前に、強固なアカウント認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストおよびセキュリティグループルールの定期的な監査などの保護措置を講じてください。オンプレミスデータベースやサードパーティプロバイダーから提供されるデータベースの場合は、DTS の CIDR ブロックをデータベースのホワイトリストに手動で追加してください。「オンプレミスデータベースのセキュリティ設定への DTS サーバー CIDR ブロックの追加」をご参照ください。
ステップ 5:移行オブジェクトの構成
| パラメーター | 説明 |
|---|---|
| [移行タイプ] | [スキーマ移行]、[増分データ移行]、または両方を選択します。 |
| [競合テーブルの処理モード] | [事前チェックとエラー報告]:宛先テーブルの名前がソーステーブルと同じ場合、事前チェックが失敗します。オブジェクト名マッピング を使用して、移行前に競合するテーブルの名前を変更してください。[エラーを無視して続行]:名前の競合チェックをスキップします。スキーマが一致する場合、DTS は重複するプライマリキーを持つレコードをスキップします。スキーマが異なる場合、特定のカラムのみが移行されるか、タスクが失敗します。慎重にご使用ください。 |
| [追加カラムの命名規則] | DTS は移行後に宛先テーブルに追加カラムを追加します。これらのカラム名が宛先の既存カラム名と競合する場合、移行は失敗します。競合を回避するため、[新規ルール] または [従来のルール] を選択して命名を制御してください。選択前に競合がないか確認してください。「追加カラムの命名規則」をご参照ください。 |
| [宛先インスタンスにおけるオブジェクト名の大文字小文字] | 宛先におけるデータベース、テーブル、カラム名の大文字小文字を制御します。デフォルトでは DTS のポリシーが適用されます。「宛先インスタンスにおけるオブジェクト名の大文字小文字の指定」をご参照ください。 |
| ソースオブジェクト | 1 つ以上のオブジェクトを選択し、 |
| [選択済みオブジェクト] | オブジェクトを右クリックして名前を変更したり、SQL フィルター条件を追加したり、移行対象の特定の SQL 操作を選択したりできます。複数のオブジェクトを一度に名前変更するには、[一括編集] をクリックします。「オブジェクト名のマッピング」および「SQL 条件を使用したデータのフィルター処理」をご参照ください。 |
データベースを移行オブジェクトとして選択し、ソーステーブルにプライマリキー(単一カラムまたは複合)がある場合、そのプライマリキーが宛先における分散キーとして使用されます。ソーステーブルにプライマリキーがない場合、DTS は宛先に自動採番主キー列を生成しますが、これはデータの不整合を引き起こす可能性があります。
オブジェクト名マッピングを使用してオブジェクトの名前を変更すると、依存オブジェクトの移行が失敗する可能性があります。
ステップ 6:高度な設定の構成
[次へ:高度な設定] をクリックし、以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| [アラートの設定] | [いいえ]:アラートを送信しません。[はい]:タスクが失敗した場合、または移行遅延がしきい値を超えた場合に通知を送信します。アラートのしきい値および連絡先を指定してください。「モニタリングとアラートの設定」をご参照ください。 |
| [接続失敗時の再試行時間] | 接続失敗後の DTS の再試行時間を指定します。範囲:10~1,440 分。デフォルト:720 分。最低でも 30 分に設定してください。この時間内に DTS が再接続できた場合、タスクは再開されます。この時間内に再接続できなかった場合、タスクは失敗します。複数のタスクが同一のソースまたはターゲットを共有する場合、最も短い再試行時間がすべてのタスクに適用されます。 |
| [ソースおよびターゲットデータベースでのその他の問題発生時の再試行待機時間] | DDL または DML 操作の失敗後の DTS の再試行時間を指定します。範囲:1~1,440 分。デフォルト:10 分。最低でも 10 分に設定してください。この値は、[接続失敗時の再試行時間] の値より小さくする必要があります。 |
| ETL の設定 | [はい]:抽出・変換・書き出し (ETL) を有効化します。コードエディタにデータ処理ステートメントを入力してください。「データ移行またはデータ同期タスクにおける ETL の設定」をご参照ください。[いいえ]:ETL の構成をスキップします。 |
DTS は再試行の試行回数に対して課金されます。ソースおよびターゲットインスタンスがリリースされた後は、速やかに DTS インスタンスをリリースしてください。
ステップ 7:事前チェックの実行
[次へ:タスク設定の保存と事前チェック] をクリックします。
このタスク構成の API パラメーターを表示するには、[次へ:タスク設定の保存と事前チェック] 上にカーソルを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS は、移行を開始する前にタスク構成を検証します。事前チェックでは、接続性、アカウント権限、バイナリログ設定、オブジェクト互換性が確認されます。
事前チェック項目のいずれかが失敗した場合、[詳細の表示] をクリックしてエラー内容を確認し、問題を修正した後、[再チェック] をクリックしてください。
事前チェック項目が安全に無視できるアラートをトリガーした場合、[アラート詳細の確認] をクリックし、「詳細の表示」ダイアログで [無視] をクリックし、[OK] をクリックした後、[再チェック] をクリックしてください。
事前チェックアラートを無視すると、データの不整合やその他のリスクが発生する可能性があります。
ステップ 8:移行インスタンスの購入
事前チェックの 成功率 が 100% に達するまで待ち、その後 [次へ:インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、インスタンスクラスを構成します。
| パラメーター | 説明 |
|---|---|
| リソースグループ | 移行インスタンスのリソースグループです。デフォルト: [デフォルトリソースグループ]。「Resource Management とは?」をご参照ください。 |
| インスタンスクラス | 移行速度はインスタンスクラスによって異なります。スループット要件に応じてクラスを選択してください。「データ移行インスタンスの仕様」をご参照ください。 |
ステップ 9:移行の開始
[Data Transmission Service(従量課金)サービス利用規約] のチェックボックスをオンにし、[購入して開始] をクリックします。
移行タスクが開始され、タスク一覧に表示されます。そこからタスクの進行状況を監視できます。
データ型マッピング
詳細については、「スキーマ同期のデータ型マッピング」をご参照ください。
次のステップ
増分データ移行が実行中であり、移行遅延がゼロになった後、ソースおよびターゲットデータベース間のデータ整合性を検証し、アプリケーションを DataHub をデータ送信先として使用するように切り替えてください。