本記事では、AWS RDSデータベースからOceanBase Cloudへデータを移行する際のベストプラクティスを説明します。移行前の準備と評価から、データ移行、移行後のデータ検証までの手順を紹介します。
背景
OceanBase Migration Service(OMS)は、同種または異種のデータソースとOceanBaseデータベース間のデータ連携に対応したサービスです。既存データのオンライン移行と、増分データのリアルタイム同期が可能です。OMSでは、構造移行(画面上の「スキーマ移行」)、全量移行、増分同期を通じて、AWS RDS上の既存の業務データと増分データをOceanBase Cloudへ移行できます。以下では、AWS RDS for MySQLを例に、OMSを使用したデータ移行の手順を説明します。
移行は、以下の流れで進めます。
ネットワーク設定
移行元・移行先データベースの準備
OceanBase Cloudのデータソースを作成します。
AWS RDSデータソースを追加します。
互換性評価
データ移行(構造移行、全量移行、増分同期)
データ検証
前提条件
プロジェクト所有者、プロジェクト管理者、またはデータサービス管理者の権限を持ち、移行に関連するタスクを作成できること。権限付与の手順については、組織プロジェクト管理の概要をご参照ください。
移行先となるOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成およびテナントの作成をご参照ください。
移行元(ソース)と移行先(ターゲット)のそれぞれにデータ移行専用のデータベースユーザーを作成し、必要な権限を付与していること。詳細については、データ移行ユーザー権限およびAurora MySQLデータベースインスタンスの作成をご参照ください。
ネットワーク設定
リアルタイム移行を開始する前に、AWSとOceanBase Cloud間のネットワーク接続を設定し、データにアクセスできる状態にしておく必要があります。本記事では、RDS for MySQLインスタンスへのプライベート接続(PrivateLink)を例に説明します。その他のAWSデータベースエンジンについては、AWSエンドポイントの設定をご参照ください。
プライベートネットワーク接続の前提条件
該当するタイプのデータベースインスタンスを作成し、そのインスタンスが属するVPC内の接続先アドレスを取得していること。
Amazon MSKクラスタを作成し、キーを関連付けていること。詳細については、Amazon MSKクラスタにSASL/SCRAM認証を設定するをご参照ください。
エンドポイントサービスに関連付けられたロードバランサー(NLB等)や仮想サーバーなどのリソースでセキュリティグループが有効化されている場合は、OceanBase CloudデータソースのプライベートIPアドレス範囲を該当するセキュリティグループに追加する必要があります。詳細については、プライベートIPアドレス範囲をご参照ください。
RDS for MySQLインスタンスのIPアドレスを取得する
Amazon RDSコンソールのデータベースページを開きます。
インスタンスリストで、対象のRDS for 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データベースを選択します。ターゲットデータベースの情報が自動入力されます。
評価タイプエリアで、実施する評価タイプを選択します。現在、オブジェクトアセスメント と プロファイル評価 がサポートされています。
次へ をクリックします。
高度な設定 ページで、評価範囲を設定します。
操作説明評価対象のオブジェクトを選択してください 左側の ソースリスト で対象のスキーマを選択し、[ > ] をクリックして右側のリストに追加します。 オブジェクトタイプを選択してください オブジェクトタイプを選択してください エリアで、対象オブジェクトタイプを選択します。 評価を開始する をクリックすると、オンライン評価タスクが開始されます。
評価完了後、互換性評価 タブで評価結果を確認できます。
AWS RDS for MySQLからOceanBase Cloudへのデータ移行
互換性評価が完了したら、データ移行を開始できます。
使用上の制限
構造移行または全量移行中は、データベースまたはテーブルのスキーマを変更するDDL操作を実行しないでください。実行した場合、データ移行タスクが中断する可能性があります。
移行できるのは、データベース名、テーブル名、列名がASCII文字で構成され、特殊文字(.|"'`()=;/& および改行文字を含む)を使用していないオブジェクトのみです。
移行先がデータベースの場合、移行先のトリガーはサポートされません。トリガーが存在すると、データ移行が失敗する可能性があります。
移行元と移行先のクロックが同期していることを確認してください。
注意事項
ノード間、またはクライアント端末とサーバー間でクロックにずれがあると、増分同期の遅延時間が正確に表示されないことがあります。たとえば、時刻が標準時より遅れていると、報告される遅延時間が負になることがあります。時刻が標準時より進んでいると、報告される遅延時間が大きくなることがあります。
DDL同期を有効にしていない場合、移行先の一意インデックスを変更した後は、データ移行タスクを再起動する必要があります。そうしないと、データの不整合が発生する可能性があります。
DECIMAL、FLOAT、DATETIMEなどの型の列について、移行後もデータの精度が期待どおりに保持されることを確認してください。移行先のフィールド型の精度が移行元のフィールド型の精度より低い場合、切り捨てが発生し、移行元と移行先のデータが一致しなくなる可能性があります。
移行元と移行先のデータベースで照合順序が異なる場合、次の問題が発生する可能性があります。
データ同期に不整合が生じる可能性があります。たとえば、移行元で
utf8mb4_0900_ai_ciを使用し、移行先でutf8mb4_general_ciを使用している場合、移行元の2つの値'A'と'A '(末尾にスペースあり)の両方を移行先に書き込めないことがあり、データが失われる可能性があります。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つの方法で選択できます。
移行範囲を選択してください エリアで、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データ移行では データベースオブジェクト と データベース全体 の2つの選択方法を使用できます。「データベースオブジェクト」では、1つまたは複数のデータベース内のテーブルやビューを移行対象オブジェクトとして選択できます。「データベース全体」では、データベース全体を移行対象オブジェクトとして選択できます。ただし、同一データベースに対してこの2つの方法を併用することはできません。
データベースオブジェクト または データベース全体 のいずれかの方法を選択した後、左側で移行するオブジェクトを選択し、[ > ] をクリックして右側のリストに追加します。
テキストをインポートして移行対象オブジェクトを追加できます。また、移行先オブジェクトの名前変更、行フィルターの設定、列情報の表示、選択リストからのオブジェクトの除外(個別または一括)も行えます。
説明
データベース全体 を選択した場合:
- 右側のリストにはデータベース名のみが表示され、個々のオブジェクトは表示されません。
- 増分同期 > DDL同期 を選択した場合、移行元で新規作成されたテーブルを移行先に同期できます。
操作説明オブジェクトのインポート 選択エリアの右側にあるリストで、右上の オブジェクトのインポート をクリックします。移行対象オブジェクトのインポートをご参照ください。 名前を変更する データ移行では、移行対象オブジェクト名を変更できます。データベース・テーブルの名前変更をご参照ください。 行フィルタリング データ移行では WHERE条件による行フィルタリングがサポートされています。SQL条件でのデータフィルタリングをご参照ください。また、列を表示 エリアで、移行対象オブジェクトの列情報を確認できます。削除/すべてクリア オブジェクトのマッピング時に、移行対象として選択したオブジェクトを個別に、またはすべてまとめて選択リストから除外できます。 - 個別に選択を解除する場合
選択エリアの右側にあるリストで、対象オブジェクトの横にある 削除 アイコンをクリックすると、そのオブジェクトが選択リストから除外されます。 - すべての選択を解除する場合
選択エリアの右側にあるリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、選択リストからすべてのオブジェクトが除外されます。
ルールによる一致 を選択する場合は、データベース間のマッチングルールの設定をご参照ください。
次へ をクリックします。移行オプション ページで、以下のパラメータを設定します。
全量移行
タイプとオブジェクトを選択してください ページで、以下のパラメータを設定します。
パラメータ説明読み取り並列数 全量移行中に移行元からデータを読み取るスレッドの同時実行数を設定します。最大値は512です。同時実行数を増やしすぎると、移行元の負荷が過大になり、業務に影響する可能性があります。 書き込み並列数 全量移行中に移行先にデータを書き込むスレッドの同時実行数を設定します。最大値は512です。同時実行数を増やしすぎると、移行先の負荷が過大になり、業務に影響する可能性があります。 全量移行レート制限 全量移行のレート制限を有効にするかどうかを、必要に応じて設定します。有効にする場合は、RPS(全量移行中に1秒間に移行先へ移行できるデータ行数の最大値)とBPS(全量移行中に1秒間に移行先へ移行できるデータ量の最大値)を設定してください。 説明
ここで設定するRPSとBPSは、転送速度の上限を設定するための値です。全量移行で実際に達成できる性能は、ソース側とターゲット側の環境や、インスタンスの仕様などによって異なります。
ターゲット側テーブルオブジェクトにレコードが存在する場合の処理ポリシー 処理ポリシーには 移行を停止する と 無視する があります: - 移行を停止 を選択した場合、移行先テーブルにデータが存在すると、全量移行中にエラーが報告されます。移行を続行する前に、移行先テーブルのデータを処理してください。
注意
エラー発生後に「再開」をクリックすると、データ移行はこの設定オプションを無視し、テーブルデータの移行を続行します。慎重に操作してください。
- 無視する を選択した場合、移行先テーブルにデータが存在し、既存データと書き込み対象データが競合すると、データ移行は競合データをログに記録し、既存データを変更せずに保持します。
インデックスの後置を許可するか インデックスを全量移行の完了後に作成するかどうかを設定します。この機能を利用すると、全量移行にかかる時間を短縮できます。設定時の注意事項については、表の下の説明をご参照ください。 注意
移行タイプの選択 ページで、スキーマ移行 と 全量移行 の両方を同時に選択した場合にのみ、このオプションを設定できます。
- 全量移行後に作成できるのは、非一意インデックスのみです。
インデックスを全量移行後に作成する場合は、OceanBaseデータベースのハードウェア構成や現在の業務トラフィックに応じて、コマンドラインクライアントで業務用テナントの以下のパラメータを調整することを推奨します。
// ファイルメモリバッファサイズの制限 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ツールへの対応についてをご参照ください。 説明
現在、この機能を利用できるのは、移行元がMySQLデータベースで、Alibaba Cloud DMS、gh-ost、またはpt-oscを使用してロックフリースキーマ変更を行う場合のみです。
詳細オプション
移行先でOceanBaseデータベースのMySQL互換モード(V4.3.0以降)を使用し、 タイプとオブジェクトを選択してください ページで、スキーマ移行 または 増分同期 > DDL同期 を選択した場合にのみ、このセクションのパラメータが表示されます。
移行先テーブルオブジェクトのストレージタイプには、デフォルト、行ストア、カラムストア、および 行列ハイブリッド型 があります。この設定により、構造移行または増分同期で作成する移行先テーブルのストレージタイプが決まります。
説明
デフォルト を選択すると、移行先のパラメータ設定に応じてストレージタイプが決まります。構造移行の対象テーブルや、増分同期中にDDLによって新規作成されるテーブルには、そのストレージタイプに対応したスキーマが適用されます。
事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェックでは、データベースユーザーの読み書き権限やネットワーク接続状態などが要件を満たしているかどうかを確認します。すべてのチェック項目に合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合は、以下のいずれかの方法で対処します。
原因を調査して問題を解決し、事前チェックを再実行してください。チェックに合格するまでこの操作を繰り返します。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。クリックすると、この操作をスキップした場合の具体的な影響を示すダイアログボックスが表示されます。スキップしてもよいことを確認したうえで、ダイアログボックス内の OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに進みます。
データ移行インスタンスの購入
データ移行インスタンスを購入する ページで、移行タスク情報 を確認し、インスタンス構成 セクションで必要な 仕様 を選択します。
増分同期のRPS性能と、推奨されるテーブル数の上限は、インスタンスの仕様によって異なります。詳細については、データ移行の仕様をご参照ください。データ移行サービスの料金および請求については、データ移行の料金と請求をご参照ください。
データ移行インスタンスを購入する ページの右側にある 要約 セクションで、私はOceanBase Cloudサービス契約およびOceanBase Cloudデータ移行サービスレベル契約を読み、同意します。 にチェックを入れます。
注文の確認 をクリックします。インスタンスの購入が完了すると、データ移行タスクの詳細ページに遷移します。
データ移行タスクの作成時に、購入後すぐに開始する設定を選択していた場合、購入後にタスクは 実行中 状態になります。
データ移行タスクが完了するまで待ちます。
データ検証
データ移行タスクが完了したら、データ検証を実行し、移行したデータの整合性を確認します。
データ検証タスクの新規作成
データ検証タスクの新規作成ページを開きます。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ検証 をクリックします。
データ検証 ページで、右上の タスクを作成する をクリックします。
タスク名のテキストボックスに、任意の検証タスク名を入力します。
数字と英字を組み合わせた名前を推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定するステップで、ソース側 の右側にある クイックフィル をクリックし、ドロップダウンリストからデータ移行で移行元として使用したデータソースを選択します。ソース側の設定が自動入力されます。次に、ターゲット の右側にある クイックフィル をクリックし、ドロップダウンリストからデータ移行で移行先として使用したデータソースを選択します。ターゲット側の設定が自動入力されます。
テストして続行 をクリックします。
タイプとオブジェクトを選択してください のステップで、現在のデータ検証タスクの検証タイプを選択します。
現在サポートされている検証タイプは、全量検証 と 行数の検証 です。詳細については、データ検証の概要をご参照ください。
検証オブジェクト エリアで、検証オブジェクトの選択方法を設定します。
検証オブジェクトは、オブジェクトの指定 と ルールによる一致 の2つの方法で選択できます。
オブジェクトを選択してください エリアで、検証対象のオブジェクトを選択します。
説明
現在、検証オブジェクトとしてテーブルのみを選択できます。
オブジェクトの指定 を選択した場合、左側で検証対象のテーブルオブジェクトを選択し、[ > ] をクリックして右側のリストに追加します。
データ検証では、テキストをインポートして検証対象のオブジェクトを追加できます。また、ターゲット側のオブジェクトの名前変更、行フィルターの設定、列情報の表示、選択リストからのオブジェクトの除外(個別または一括)も行えます。
操作説明オブジェクトのインポート 選択エリアの右側のリストで、右上の オブジェクトのインポート をクリックします。詳細については、検証オブジェクトのインポートをご参照ください。 名前を変更する データ検証では、検証オブジェクト名を変更できます。詳細については、検証オブジェクトの名前変更をご参照ください。 行フィルタリング 全量検証 では、 WHERE条件を使用して行フィルターを設定できます。詳細については、SQL条件で検証オブジェクトをフィルタリングするをご参照ください。また、列を表示 エリアで、検証オブジェクトの列情報も確認できます。削除/すべてクリア データのマッピング時に、検証対象として選択したオブジェクトを個別に、またはすべてまとめて選択リストから除外できます。 - 個別に選択を解除する場合
選択エリアの右側のリストで、対象オブジェクトの横にある 削除 アイコンをクリックすると、そのオブジェクトが選択リストから除外されます。 - すべての選択を解除する場合
選択エリアの右側のリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、選択リストからすべてのオブジェクトが除外されます。
- 個別に選択を解除する場合
ルールによる一致 を選択した場合、詳細については 検証オブジェクトのマッチングルールの設定をご参照ください。
次へ をクリックし、検証オプション のステップで、各パラメータを設定します。
全量検証
タイプとオブジェクトを選択してください のステップで、全量検証 を選択した場合のみ、以下のパラメータが表示されます。
パラメータ説明ソース側並列設定/ターゲット側並列設定 最小値は1、最大値は512、デフォルト値は4です。 検証モード アダプティブモード と INモード があります。 - アダプティブモード:移行元と移行先から同じ範囲のデータをバッチ単位で取得し、詳細に比較します。
- INモード:移行元から指定範囲のデータをバッチ単位で取得します。その後、一意キーを使って移行先を検索し、データが一致するかどうかを確認します。このモードでは、移行先にのみ存在するデータは検証できません。また、検証性能がやや低下します。移行先にのみ存在するデータが想定どおりで、そのデータを検証する必要がない場合、または複数のデータベースやテーブルを集約して移行する場合に限り、このモードの使用を推奨します。
BPSの制限 単位はMiB/s、最大値は1024です。このオプションを有効にする場合は、ソース側またはターゲット側の少なくとも一方で、最低レートを選択してください。 行数検証
タイプとオブジェクトを選択してください のステップで、行数の検証 を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明同時検証テーブル数 最小値は1、最大値は100、デフォルト値は10です。この設定はソース側とターゲット側の両方に適用されます。 クエリのタイムアウト 単位は分、最小値は1、最大値は1440、デフォルト値は10です。この設定はソース側とターゲット側の両方に適用されます。
次へ をクリックすると、システムはデータ検証タスクの事前チェックを実行します。
事前チェックに成功したら、タスクを開始する をクリックします。
すぐにタスクを開始しない場合は、保存 をクリックしてデータ検証タスクの詳細ページに移動し、必要に応じて手動で開始できます。詳細については、データ検証タスクの詳細を見るをご参照ください。
データ検証結果の確認
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ検証 をクリックします。
データ検証リストで、データ検証タスクの実行状態を確認します。タスクの状態が 完了 になったら、タスク名をクリックします。
データ検証タスクの詳細ページで、データ検証タスクの実行状況を確認します。
- 基本情報:現在のデータ検証タスクに関する基本情報を表示します。
- 検証の詳細:現在のタスクの事前チェックの状態と結果、および選択した検証タイプの検証状態と結果を表示します。
まとめ
データ検証で移行元(ソース)と移行先(ターゲット)のデータが一致していることを確認できれば、移行タスクは完了です。