本記事では、AWS RDSデータベースからOceanBase Cloudへデータを安全かつ効率的に移行するためのベストプラクティスをまとめています。移行前の準備や評価、移行作業の実施、データ検証など、一連の重要なプロセスを網羅しています。
背景
OceanBase Migration Service(OMS)は、同種または異種のデータソースとOceanBaseデータベース間のデータ連携に対応したサービスです。既存データのオンライン移行と、増分データのリアルタイム同期が可能です。OMSを利用すれば、スキーマ移行・全量移行・増分同期を通じて、AWS RDS上の既存の業務データと増分データをOceanBase Cloudへシームレスに移行できます。以下では、AWS RDSのMySQL互換モードを例に、OMSを使用したデータ移行の手順を説明します。
移行プロセス:
ネットワーク設定
移行元・移行先データベースの準備
OceanBase Cloudのデータソースを作成します。
AWS RDSデータソースを追加します。
互換性評価
データ移行:スキーマ移行、全量移行、増分同期を含みます。
データ検証
前提条件
プロジェクト所有者、プロジェクト管理者、またはデータサービス管理者として権限が付与されており、移行プロセスに関連するタスクを作成できること。権限付与の手順については、組織プロジェクト管理の概要をご参照ください。
移行先となるOceanBaseのクラスタとテナントが作成済みであること。詳細については、クラスタの作成およびテナントの作成をご参照ください。
移行元(ソース)と移行先(ターゲット)のそれぞれにデータ移行専用のデータベースユーザーを作成し、必要な権限を付与していること。詳細については、データ移行ユーザー権限およびAurora MySQLデータベースインスタンスの作成をご参照ください。
ネットワーク設定
リアルタイム移行を開始する前に、AWSとOceanBase Cloudのネットワークを接続し、データ移行のための経路を確保しておく必要があります。本記事では、RDS MySQLモードのプライベート接続(PrivateLink)を例に説明します。その他のAWSデータベースエンジンについては、AWSエンドポイントの設定をご参照ください。
プライベートネットワーク接続の前提条件
該当するタイプのデータベースインスタンスを作成し、そのインスタンスが属するVPC内の接続先アドレスを取得していること。
Amazon MSKクラスタを作成し、キーを関連付けていること。詳細については、Amazon MSKクラスタにSASL/SCRAM認証を設定するをご参照ください。
エンドポイントサービスに関連付けられたロードバランサー(NLB等)や仮想サーバーなどのリソースでセキュリティグループが有効化されている場合は、OceanBase Cloudデータソースのプライベートアドレスを該当のセキュリティグループに追加する必要があります。詳細については、プライベートアドレスのネットワークセグメント説明をご参照ください。
RDS MySQLインスタンスのIPアドレスを取得する
Amazon RDSコンソールのデータベースページを開きます。
インスタンスリストで、対象のRDS MySQLデータベースインスタンス名をクリックし、接続とセキュリティセクションでエンドポイントをコピーしてVPC情報を確認します。
同一VPC内のEC2インスタンスにログインし、以下のコマンドを実行します:
// example.example-region.rds.amazonaws.com のドメイン名を、前の手順でコピーしたエンドポイント名に置き換えてください。 nslookup <example.example-region.rds.amazonaws.com>実行結果の例を以下に示します。
// ... Name: example.example-region.rds.amazonaws.com Address: xxx.xxx.xxx.1 //...出力されたIPアドレスが、対象RDSインスタンスのプライマリプライベートIPv4アドレスです。このアドレスは、後続のターゲットグループの作成手順で使用します。
ターゲットグループの作成
AWSコンソールのターゲットグループページを開きます。
ページの右上隅にあるターゲットグループの作成をクリックします。
ターゲットグループの作成ページで各パラメータを設定し、**次へ**をクリックします。
パラメータ説明ターゲットタイプ IPアドレスを選択します。 ターゲットグループ名 命名規則に従って、ターゲットグループ名を任意に設定します。 プロトコル TCPを選択します。 ポート 対応するポート番号を入力します。Kafkaインスタンスの場合は、対応するNginxポートを選択します。 IPアドレスタイプ IPv4を選択します。 VPC ロードバランサーを配置するVPCを選択します。 ターゲットの登録ページの IPアドレス セクションで各パラメータを設定し、保留中として以下を含めるをクリックします。
パラメータ説明ネットワーク ネットワークのドロップダウンリストから、MySQLデータベースインスタンスが存在するVPCを選択します。 指定IPとポートの定義 VPCサブネットのIPv4アドレスを入力テキストボックスに、データベースインスタンスのIPアドレスを入力します。 ポート 対応するポート番号を入力します。Kafkaインスタンスの場合は、対応するNginxポートを選択します。 対象の確認 セクションで、グループに含めるIPアドレスのターゲット設定が正しいことを確認したら、次へ をクリックします。
レビューと作成 ページで設定情報を確認し、問題がなければ ターゲットグループの作成 をクリックします。
ネットワークロードバランサーの作成
**ネットワークロードバランサー(NLB)**を作成する手順については、ネットワークロードバランサーの作成をご参照ください。
注意
以下のパラメータは本記事の手順に従って設定してください。その他のパラメータは任意です。
AWSコンソールのロードバランサーページを開きます。
ページの右上隅にあるロードバランサーの作成 > ネットワークロードバランサーをクリックします。
ネットワークロードバランサーの作成ページで、各項目のパラメータを設定します。
基本的な設定
パラメータ説明スキーム 内部を選択します。 IPアドレスタイプ IPv4を選択します。 ネットワークマッピング
パラメータ説明VPC ドロップダウンリストからMySQLデータソースが配置されているVPCを選択します。 アベイラビリティーゾーンとサブネット 通常はすべて選択します。環境に応じて、少なくとも1つのアベイラビリティーゾーンと1つのサブネットを選択することも可能です。 セキュリティグループ
パラメータ説明セキュリティグループ セキュリティグループをネットワークロードバランサーに関連付けることができますが、ここではどのセキュリティグループも選択しないことを推奨します。セキュリティグループの詳細については、ネットワークロードバランサーのセキュリティグループをご参照ください。 説明
- ネットワークロードバランサーにセキュリティグループを関連付けた場合は、バックエンドのマウントポートへのアクセスを許可する必要があります。
- Kafkaインスタンス用のネットワークロードバランサーを作成する際は、セキュリティグループを選択しないでください。
リスナーとルーティングセクションでは、以下のパラメータを設定します。
パラメータ説明プロトコル リスナープロトコルとして TCP を選択します。 ポート 対応するポート番号を選択します。 デフォルトのアクション ドロップダウンリストから、ターゲットグループの作成手順で作成したターゲットグループを選択します。
作成が完了したら、ロードバランサー ページに戻り、作成したネットワークロードバランサーの名前をクリックして詳細ページを開きます。
詳細ページの 属性 タブで、編集 をクリックします。
ロードバランサー属性の編集 ページの クロスゾーンロードバランサー をオンにし、変更を保存 をクリックします。
エンドポイントサービスの作成
AWSコンソールのエンドポイントサービスページを開きます。
ページの右上隅にあるエンドポイントサービスの作成をクリックします。
エンドポイントサービスの作成ページで、各パラメータを設定します。
パラメータ説明名前 エンドポイントサービス名を任意に設定します。 ロードバランサーのタイプ ネットワークを選択します。 使用可能なロードバランサー ネットワークロードバランサーの作成手順で作成したロードバランサーを選択します。
説明
一覧に表示されない場合は、ロードバランサーの状態がActiveになるまで待ってからページを更新し、改めて選択してください。その他の設定セクションで、各パラメータを設定します。
パラメータ説明エンドポイントの承諾(オプション) エンドポイント接続リクエストに対する手動承諾の要否を設定します。 - 承諾が必要にチェックを入れた場合、データ移行サービスがプライベート接続に初めてアクセスする際、AWSコンソールを開き、受信したエンドポイント接続リクエストに対してエンドポイント接続リクエストの承諾を行うよう求められます。
- 承諾が必要にチェックを入れていない場合、データ移行サービスがプライベート接続に初めてアクセスしても、プロンプトは表示されません。
プライベートDNS名の有効化 ここではプライベートDNS名を有効にしないでください。 サポートされているIPアドレスタイプ IPv4を選択します。 **作成**をクリックして、エンドポイントサービスの作成を完了します。
作成したエンドポイントサービスにアクセスするアカウントに権限を付与します。
**エンドポイントサービス**ページで、作成したエンドポイントサービスを選択します。
ページの右上隅にある**アクション** > プリンシパルを許可をクリックします。
データソースまたはデータ移行タスクに権限を付与するアカウントを確認します。
OceanBase Cloudデータベースコンソールの新規データソースまたはデータ移行タスクページで、**接続タイプにエンドポイント**を選択した後、ページに表示された権限付与対象のアカウント(
arn:aws:iam::aws-account-id:<type>/<id>形式)をコピーします。新規データソースの詳細については、新規データソースの作成をご参照ください。新規タスクの詳細については、データ移行モジュールで該当するデータ移行タスクの作成ドキュメントをご参照ください。プリンシパルを許可ページの追加するプリンシパルエリアに、権限を付与するアカウントを入力し、プリンシパルを許可をクリックします。
設定が完了すると、作成したエンドポイントサービスを指定したアカウントから利用できるようになります。
エンドポイントサービスを作成した後、サービス名をコピーし、新規データソースまたはデータ移行タスクページのAWS > エンドポイント > **接続情報**に入力します。
サービス名をコピーする手順は以下のとおりです:
AWSコンソールのエンドポイントサービスページを開きます。
対象のエンドポイントサービスを選択します。
ページ下部の詳細エリアで、サービス名のコピーアイコンをクリックし、エンドポイントサービス名を保存します。この値は、後でデータソースを追加する際に使用します。
移行元・移行先データベースの準備
OceanBase Cloudデータソースの追加
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > **データソース**を選択します。
データソースページで、データソースを作成する > **OceanBase MySQL Compatible**をクリックします。
新規データソースページで、作成済みのOceanBase Cloudインスタンスを選択し、対応するアカウントとパスワードを入力して、**接続テスト**をクリックします。
接続テストが成功したら、**保存をクリックし、データソース名を控えておきます。このデータソースは、後続の操作で移行先(ターゲット)**として使用します。
AWS RDSデータソースの追加
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > **データソース**を選択します。
データソースページで、新しいデータソースを作成する > **MySQL**をクリックします。
新規データソースページで、既存のAWS RDSデータベース情報に基づき、リージョン、インスタンスタイプ、接続タイプ、エンドポイントサービス名、ポート、アカウント、パスワードを入力し、**接続テスト**をクリックします。
接続テストが成功したら、**保存をクリックし、データソース名を控えておきます。このデータソースは、後続の操作で移行元(ソース)**として使用します。
互換性評価
オンライン評価タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データ移行 をクリックします。
データ移行ページで、互換性評価 をクリックします。
互換性評価タブで、作成する > オンライン評価 をクリックします。
評価ページで、以下のパラメータを設定します。
任意の タスク名 を入力します。長さは30文字以内にしてください。
ソースエリアで、データソースの参照 をクリックし、ドロップダウンリストから追加済みのAWS RDSデータソースを選択すると、ソースデータベースの情報が自動で入力されます。
ターゲットエリアで、データソースの参照 をクリックし、ドロップダウンリストから作成済みのOceanBase Cloudデータベースを選択すると、ターゲットデータベースの情報が自動で入力されます。
評価タイプエリアで、実施する評価タイプを選択します。現在、オブジェクトアセスメント と 画像評価 がサポートされています。
次へ をクリックします。
高度な設定 ページで、評価範囲を設定します。
操作説明評価対象のオブジェクトを選択してください 左側の ソースリスト で対象Schemaを選択し、[ > ] をクリックして右側のリストに追加します。 オブジェクトタイプを選択してください オブジェクトタイプを選択してください エリアで、対象オブジェクトタイプを選択します。 評価を開始する をクリックすると、オンライン評価タスクが開始されます。
評価完了後、互換性評価 タブで評価結果を確認できます。
AWS RDS MySQLデータのOceanBase Cloudへの移行
互換性評価が完了したら、データ移行を開始できます。
使用上の制限
移行元データベースでは、スキーマ移行および全量移行中は、データベースまたはテーブル構造を変更するDDL操作を実行しないでください。実行した場合、データ移行タスクが中断する可能性があります。
データ移行で移行できるのは、データベース名、テーブル名、列名がASCIIコードで、特殊文字(.|"'`()=;/& および改行文字を含む)を含まないオブジェクトのみです。
移行先がデータベースの場合、移行先にトリガー(Trigger)が存在する構成はデータ移行でサポートされていません。存在すると、データ移行が失敗する可能性があります。
移行元と移行先のクロックが同期していることを確認してください。
注意事項
ノード間のクロック、またはクライアント端末とサーバー間のクロックが同期していない場合、増分同期の遅延時間が正確に表示されないことがあります。たとえば、時刻が進んでいると遅延時間が負の値になり、時刻が遅れているとより大きな遅延として表示される場合があります。
DDL同期を有効にしていない場合、移行先の一意インデックスを変更した後は、データ移行タスクを再開始する必要があります。そうしないと、データの不整合が発生する可能性があります。
データ移行で、DECIMAL、FLOAT、DATETIMEなどの列型の移行精度が期待どおりであることを確認してください。移行先のフィールド型の精度が移行元のフィールド型の精度より低い場合、切り捨てが発生し、移行元と移行先のデータが一致しなくなる可能性があります。
移行元と移行先の照合順序(Collation)が異なる場合:
データ同期の不整合が発生する可能性があります。たとえば、移行元の
utf8mb4_0900_ai_ciでは 'A' と 'A '(末尾スペースあり)は別のデータとして扱われますが、移行先のutf8mb4_general_ciのデータベースには正しく書き込まれず、データが失われる可能性があります。主キーとしてVARCHARを使用するテーブルのデータ検証が一致しなくなります。
データ移行タスクを新規作成する際に、全量移行 + 増分同期 を設定した場合、移行元データベースでローカル増分ログを少なくとも7日間保持するよう設定しておく必要があります。そうでない場合、増分ログを取得できないためデータ移行タスクが失敗したり、移行元と移行先のデータが一致しなくなったりする可能性があります。
データ型のマッピング
MySQLデータベース |
OceanBaseデータベース(MySQL互換モード) |
|---|---|
| INTEGER | INTEGER |
| TINYINT | TINYINT |
| MEDIUMINT | MEDIUMINT |
| BIGINT | BIGINT |
| SMALLINT | SMALLINT |
| DECIMAL | DECIMAL |
| NUMERIC | NUMERIC |
| FLOAT | FLOAT |
| REAL | REAL |
| DOUBLE PRECISION | DOUBLE PRECISION |
| BIT | BIT |
| CHAR | CHAR |
| VARCHAR | VARCHAR |
| BINARY | BINARY |
| VARBINARY | VARBINARY |
| BLOB | BLOB |
| TEXT | TEXT |
| ENUM | ENUM |
| SET | SET |
| DATE | DATE |
| DATETIME | DATETIME |
| TIMESTAMP | TIMESTAMP |
| TIME | TIME |
| YEAR | YEAR |
操作手順
データ移行の設定
データ移行ページで、データ移行 タブをクリックします。
データ移行タブで、移行タスクを作成する をクリックします。
タスク名のテキストボックスに、任意の移行タスク名を入力します。日本語、英字、数字の組み合わせを使用することを推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットの設定ページで、以下の内容を設定します。
ソースエリアで、ソース側 の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のAWS RDSデータソースを選択します。これにより、ソースデータベースの情報が自動で入力されます。
ターゲットエリアで、ターゲット の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のOceanBase Cloudデータソースを選択します。これにより、ターゲットデータベースの情報が自動で入力されます。
テストして続行 をクリックします。
説明
- データ移行が初めてエンドポイントにアクセスする際に接続テストが失敗した場合は、ポップアップウィンドウの指示に従って操作してください。
- エンドポイントサービス作成時に、パラメータ エンドポイントの承諾 で 承諾が必要 を選択した場合、データ移行が初めてプライベート接続にアクセスする際、AWSコンソールを開き、受信したエンドポイント接続リクエストに対して エンドポイント接続リクエストの承諾 を行うよう求められます。
タイプとオブジェクトを選択するページで、以下のパラメータを設定します。
同期トポロジエリアで、一方向同期 を選択します。
移行タイプエリアで、現在のデータ移行タスクの移行タイプを選択します。選択肢には、スキーマ移行、全量移行、増分同期 があります。
パラメータ説明スキーマ移行 スキーマ移行では、文字セットのマッピングを手動で設定する必要があります。データ移行は、移行元データベースの構造を移行先データベースにコピーするだけで、ソース側のデータには影響しません。MySQLデータベースからOceanBaseデータベースのMySQL互換モードへスキーマ移行する場合、移行先に存在しないデータベースを自動で作成できます。 完全移行 全量移行タスクが開始されると、移行元データベースのテーブルにある既存データを、移行先データベースの対応するテーブルへ移行します。 増分同期 増分同期タスクの開始後、データ移行は、移行元データベースで変更されたデータ(追加、変更、削除)を移行先データベースの対応するテーブルに同期します。増分同期 には DML同期 と DDL同期 が含まれ、必要に応じてカスタマイズできます。詳細については、DML/DDLのカスタム設定をご参照ください。 移行対象を選択してください エリアで、移行オブジェクトの選択方法を設定します。
移行オブジェクトは、オブジェクトの指定 と ルールによる一致 の2つの方法で選択できます。
移行範囲を選択してください エリアで、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データ移行では データベースオブジェクト と データベース全体 がサポートされます。データベース・テーブル移行では、1つまたは複数のデータベース内のテーブルやビューを移行オブジェクトとして選択できます。データベース移行では、データベース全体を移行オブジェクトとして選択できます。ただし、同一データベースに対してデータベース・テーブル移行とデータベース移行を同時に選択することはできません。
データベースオブジェクト または データベース全体 のいずれかの方法を選択した後、左側で移行するオブジェクトを選択し、[ > ] をクリックして右側のリストに追加します。
テキストインポートによるオブジェクトの追加、移行先オブジェクトの名前変更、行フィルターの設定、列情報の表示、移行オブジェクトの個別削除または一括削除などの操作にも対応しています。
説明
データベース移行 を選択した場合:
- 右側のリストにはデータベース名のみが表示され、具体的なオブジェクトは表示されません。
- 増分同期-DDL同期 移行タイプを選択した場合、移行元に新規作成されたテーブルは移行先に同期できます。
操作説明インポート対象 選択エリアの右側にあるリストで、右上の インポート対象 をクリックします。移行オブジェクトのインポートをご参照ください。 名前を変更する データ移行では、移行オブジェクト名を変更できます。データベース・テーブルの名前変更をご参照ください。 行フィルタリング データ移行では WHERE条件による行フィルタリングがサポートされています。SQL条件でのデータフィルタリングをご参照ください。また、列を表示 エリアで、移行オブジェクトの列情報を確認できます。すべて削除/クリア データ移行では、データマッピング時に一時的に移行先で選択された単一または複数のオブジェクトを削除できます。 - 単一の移行オブジェクトの削除
選択エリアの右側にあるリストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択エリアの右側にあるリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、すべての移行オブジェクトが削除されます。
ルールによる一致 を選択する場合は、データベース間のマッチングルールの設定をご参照ください。
次へ をクリックします。移行オプション ページで、以下のパラメータを設定します。
全量移行
タイプとオブジェクトを選択してください ページで、以下のパラメータを設定します。
パラメータ説明同時実行の読み取り このパラメータでは、全量移行段階で移行元からデータを読み取る並列数を設定します。最大値は512です。並列数が高すぎると、移行元の負荷が過大になり、業務に影響する可能性があります。 同時実行の書き込み このパラメータでは、全量移行段階で移行先にデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎると、移行先の負荷が過大になり、業務に影響する可能性があります。 全量移行レート制限 必要に応じて、全量移行のレート制限を有効にするかどうかを設定できます。有効にする場合は、RPS(全量移行段階で1秒間に移行先へ移行できるデータ行数の最大値)とBPS(全量移行段階で1秒間に移行先へ移行できるデータ量の最大値)を設定してください。 説明
ここで設定するRPSとBPSは、レート制限とトラフィック制限のためにのみ使用されます。全量移行で実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
ターゲット側テーブルオブジェクトにレコードが存在する場合の処理ポリシー 処理ポリシーには 移行を停止する と 無視する があります: - 移行を停止 を選択した場合、移行先テーブルにデータが存在すると、全量移行は「移行を許可できません」というエラーを返します。移行先のデータを適切に処理してから、移行を続けてください。
注意
エラー発生後に「復元」をクリックすると、データ移行はこの設定オプションを無視し、テーブルデータの移行を続行します。慎重に操作してください。
- 無視する を選択した場合、移行先テーブルにデータが存在し、既存データと書き込み対象データが競合すると、データ移行は競合データをログに記録し、既存データを変更せずにデータを書き込みます。
インデックスの後置を許可するか インデックスの後付け機能により、全量移行の所要時間を短縮できます。ここでは、全データ移行の完了後にインデックスを作成するかどうかを設定できます。インデックスの後付けを選択する際の注意事項については、表の下部の説明をご参照ください。 注意
移行タイプの選択 ページで、構造移行 と フル移行 の両方を同時に選択した場合にのみ、このオプションを設定できます。
- 一意キー以外のインデックスのみ、後付け作成をサポートします。
インデックスの後付けを許可する場合は、OceanBaseデータベースのハードウェア条件と現在の業務トラフィック状況に基づき、CLIツールで以下のテナントパラメータを調整することを推奨します。
// ファイルメモリバッファサイズの制限 ALTER SYSTEM SET _temporary_file_io_area_size = '10' tenant = 'xxx'; // OceanBaseデータベースV4.xでのトラフィック制限の無効化 ALTER SYSTEM SET sys_bkgd_net_percentage = 100;- 移行を停止 を選択した場合、移行先テーブルにデータが存在すると、全量移行は「移行を許可できません」というエラーを返します。移行先のデータを適切に処理してから、移行を続けてください。
増分同期
タイプとオブジェクトを選択してください ページで、一方向同期 > 増分同期 を選択すると、以下のパラメータが表示されます。
パラメータ説明同時実行の書き込み このパラメータでは、増分同期フェーズで移行先にデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎると、移行先の負荷が過大になり、業務に影響する可能性があります。 増分移行レート制限 必要に応じて、増分同期のレート制限を有効にするかどうかを設定できます。有効にする場合は、RPS(増分同期フェーズで1秒間に移行先へ同期できるデータ行数の最大値)とBPS(増分同期フェーズで1秒間に移行先へ同期できるデータ量の最大値)を設定してください。 説明
ここで設定するRPSとBPSは、レート制限とトラフィック制限のためにのみ使用されます。増分同期で実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始タイムスタンプ - 移行タイプ選択時に 完全移行 を選択した場合、このパラメータは表示されません。
- 移行タイプ選択時に 完全移行 を選択せず、増分同期 を選択した場合、特定の時点以降のデータを移行するには、ここで開始時刻を指定します。デフォルトは現在のシステム時刻です。詳細については、増分同期ポイントの設定をご参照ください。
Binlogポイントの定期更新 この機能を有効にする場合は、頻度を設定する必要があります。設定可能な範囲は1〜60秒です。
設定完了後、データ移行は増分同期フェーズで、設定した頻度に基づいてMySQLソースデータベースでCREATE DATABASE IF NOT EXISTS testコマンドを定期的に実行し、Binlogポイントを進めます。Online DDLツールへの対応 この機能を有効にすると、データベースがOnline DDLツールを使用してロックフリーの構造変更を実行する際、データ移行は一時テーブルオブジェクトをフィルタリングし、データ移行タスクの安定性を高めます。詳細については、Online DDLツールへの対応についてをご参照ください。 説明
現在、Online DDLツールへの対応は、移行元がMySQLデータベースで、Alibaba Cloud DMS、gh-ost、またはpt-oscを使用してロックフリーの構造変更を行うシナリオのみをサポートしています。
詳細オプション
移行先OceanBaseデータベースのMySQL互換モードがV4.3.0以降であり、かつ タイプとオブジェクトを選択してください ページで、スキーマ移行 または 増分同期 > DDL同期 を選択した場合、このセクションのパラメータが表示されます。
移行先テーブルオブジェクトのストレージタイプには、デフォルト、行ストア、カラムストア、および 行列ハイブリッド型 があります。この設定は、スキーマ移行または増分同期時に、移行先テーブルオブジェクトのストレージタイプを決定するために使用されます。
説明
デフォルト オプションでは、移行先のパラメータ設定に応じて他のオプションが適用されます。これにより、スキーマ移行のテーブルオブジェクトや増分DDLで新規作成されるテーブルオブジェクトが、設定されたストレージタイプに対応する構造で書き込まれます。
事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェックでは、データベースユーザーの読み書き権限やネットワーク接続状態などが要件を満たしているかどうかを確認します。すべてのチェック項目に合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・対処した後、すべてのチェックに合格するまで事前チェックを再実行してください。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。クリックすると、この操作をスキップした場合の具体的な影響を示すダイアログボックスが表示されます。スキップしてもよいことを確認したうえで、ダイアログボックス内の OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページで購入します。
データ移行インスタンスの購入
データ移行インスタンスを購入する ページで、移行タスク情報 を確認し、インスタンス構成 セクションで必要な 仕様 を選択します。
各インスタンス仕様は、増分同期のRPS性能と推奨最大テーブル数に対応しています。詳細については、データ移行仕様説明をご参照ください。データ移行サービスの料金および請求については、データ移行請求説明をご参照ください。
データ移行インスタンスを購入する ページの右側にある 要約 セクションで、私はOB Cloudクラウドデータベースサービス契約およびOB Cloudデータ移行サービスレベル契約を読み、同意します。 にチェックを入れます。
注文の確認 をクリックします。インスタンスの購入が完了すると、データ移行タスクの詳細ページに遷移します。
データ移行タスクの作成時に、購入後すぐにタスクを開始することを選択した場合、そのタスクは 実行中 状態になります。
データ移行タスクが完了するまで待ちます。
データ検証
データ移行タスクが完了したら、データ検証を実行してデータ移行の整合性を確認できます。
データ検証タスクの新規作成
データ検証タスクの新規作成ページを開きます。
OceanBase Cloudデータベースコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ検証 をクリックします。
データ検証 ページで、右上の タスクを作成する をクリックします。
タスク名のテキストボックスに、任意の検証タスク名を入力します。
名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットの設定手順で、ソース側 の右側にある クイックフィル をクリックし、ドロップダウンリストからデータ移行のソースデータソースを選択します。選択後、ソースエリアの各設定が自動で入力されます。次に、ターゲット の右側にある クイックフィル をクリックし、ドロップダウンリストからデータ移行のターゲットデータソースを選択します。選択後、ターゲットエリアの各設定が自動で入力されます。
テストして続行 をクリックします。
タイプとオブジェクトを選択してください の手順で、現在のデータ検証タスクの検証タイプを選択します。
現在サポートされている検証タイプは、完全な検証 と 行数の検証 です。詳細については、データ検証の概要をご参照ください。
検証オブジェクト エリアで、検証オブジェクトの選択方法を設定します。
検証オブジェクトは、オブジェクトの指定 と ルールによる一致 の2つの方法で選択できます。
オブジェクトを選択してください エリアで、検証対象のオブジェクトを選択します。
説明
現在、検証オブジェクトとしてテーブルのみを選択できます。
オブジェクトの指定 を選択した場合、左側で検証対象のテーブルオブジェクトを選択し、[ > ] をクリックして右側のリストに追加します。
データ検証では、テキストのインポートによるオブジェクト追加、移行先オブジェクトの名前変更、行フィルターの設定、列情報の表示、検証オブジェクトの個別削除または一括削除などの操作に対応しています。
操作説明インポート対象 選択エリアの右側のリストで、右上の インポート対象 をクリックします。詳細については、検証オブジェクトのインポートをご参照ください。 名前を変更する データ検証では、検証オブジェクト名を変更できます。詳細については、検証オブジェクトの名前変更をご参照ください。 行フィルタリング 完全な検証 では、 WHERE条件を使用して行フィルターを設定できます。詳細については、SQL条件で検証オブジェクトをフィルタリングするをご参照ください。また、列を表示 エリアで、検証オブジェクトの列情報も確認できます。すべての検証オブジェクトを削除/クリア データ検証では、データマッピング時に一時的に移行先で選択された1つまたは複数のオブジェクトを削除できます。 - 単一の移行オブジェクトの削除
選択エリアの右側のリストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択エリアの右側のリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、すべての移行オブジェクトが削除されます。
- 単一の移行オブジェクトの削除
ルールによる一致 を選択した場合、詳細については 検証オブジェクトのマッチングルールの設定をご参照ください。
次へ をクリックし、検証オプション の手順で、各パラメータを設定します。
フル検証
タイプとオブジェクトを選択してください のステップで、完全な検証 を選択した場合のみ、以下のパラメータが表示されます。
パラメータ説明ソース側並列設定/ターゲット側並列設定 最小値は1、最大値は512、デフォルト値は4です。 検証モード アダプティブモード と INモード があります。 - アダプティブモード:移行元と移行先から同じ範囲のデータをバッチ処理で取得し、正確に比較します。
- INモード:移行元から指定範囲のデータをバッチ処理で取得し、移行先データの一意キーに基づいて移行先でIN条件クエリを実行し、両側のデータが一致するかどうかを比較します。このモードでは、移行先に移行元にないデータが存在する場合は検証できず、検証性能も低下します。移行先に想定内の余分なデータがあり、検証が不要な場合、またはデータベース・テーブルの集約移行シナリオでのみ使用することを推奨します。
BPSの制限 単位はMiB/s、最大値は1024です。このオプションを有効にする場合は、少なくともソース側またはターゲット側のいずれか一方の最低レートを選択してください。 行数検証
タイプとオブジェクトを選択してください の手順で、行数の検証 を選択した場合、以下のパラメータが表示されます。
パラメータ説明検証用のコンカレントテーブル 最小値は1、最大値は100、デフォルト値は10です。この設定はソース側とターゲット側の両方に適用されます。 クエリのタイムアウト 単位は分、最小値は1、最大値は1440、デフォルト値は10です。この設定はソース側とターゲット側の両方に適用されます。
次へ をクリックすると、システムはデータ検証タスクの事前チェックを実行します。
事前チェックに成功したら、タスクを開始する をクリックします。
すぐにタスクを開始しない場合は、保存 をクリックしてデータ検証タスクの詳細ページに移動し、必要に応じて手動で開始できます。詳細については、データ検証タスクの詳細を見るをご参照ください。
データ検証結果の確認
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ検証 をクリックします。
データ検証リストで、データ検証タスクの実行状態を確認します。タスクの状態が 完了しました になったら、タスク名をクリックします。
データ検証タスクの詳細ページで、データ検証タスクの実行状況を確認します。
- 基本情報:現在のデータ検証タスクに関する基本情報を表示します。
- 検証の詳細:現在のタスクの事前チェック状態、結果、および該当する検証タイプの検証状態と結果などの情報を表示します。
まとめ
移行元(ソース)と移行先(ターゲット)のデータ検証結果が一致していることを確認できれば、移行タスクはすべて完了です。