AWSデータベース移行サービス(DMS)は、AWSが提供するクラウドデータベース移行サービスであり、同種および異種データベース間のデータ移行をサポートします。AWS DMSは、フル移行、増分移行、および継続的データレプリケーション機能を提供しており、データベース移行、データ同期、データ統合などのシナリオに利用できます。OceanBaseデータベースと組み合わせることで、MySQLとOceanBase間の双方向データ移行を実現できます。
バージョン互換性
コンポーネント |
バージョン要件 |
|---|---|
| OceanBase | ≥ V4.2.5 |
| ODP | ≥ V4.3.5 |
使用上の制限
- OceanBaseは
CREATE TEMPORARY TABLESおよびEVENT権限をサポートしていないため、移行評価が失敗する可能性がありますが、実際のデータ移行には影響しません。 - OceanBaseからMySQLへの増分移行では、ODP経由で接続する必要があり、OBServerに直接接続することはできません。
- 増分移行ではBinlogサービスをデプロイする必要があります。OBServerに直接接続してもbinlog機能は利用できません。
前提条件
AWS DMSを使用する前に、次のことを確認してください:
- AWS DMSがインストールおよび設定済みであること。インストールと設定については、AWS DMS公式ドキュメントを参照してください。
- OceanBaseデータベースがデプロイされ、MySQLモードのユーザーテナントが作成されていること。ユーザーテナントの作成方法の詳細については、テナントの作成を参照してください。
- 増分移行を必要とする場合は、作成したMySQL互換モードのテナントでBinlogサービスが有効になっていること。詳細については、OceanBase Binlogサービスを参照してください。
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
OceanBaseデータベースのデプロイ担当者から接続文字列を取得します。例:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
パラメータ説明:
$host:接続IPアドレス。ODP接続の場合はODPアドレスを使用し、直接接続の場合はOBServer IPを使用します。$port:接続ポート。ODPのデフォルトは2883、直接接続のデフォルトは2881です。$database_name:データベース名。注意
テナントに接続するユーザーには、データベースに対する
CREATE、INSERT、DROP、およびSELECT権限が付与されていなければなりません。ユーザー権限の詳細については、MySQLモードの権限分類を参照してください。$user_name:接続アカウント。ODP形式:ユーザー@テナント#クラスタまたはクラスタ:テナント:ユーザー。直接接続形式:ユーザー@テナント。$password:アカウントのパスワード。
接続文字列の詳細については、OBClientを使用してOceanBaseテナントに接続するを参照してください。
例:
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
ステップ2:MySQLパラメータを設定する
ソースがMySQLデータベースの場合、MySQLデータベースにログインし、移行評価の失敗を避けるためにパラメータ設定を変更する必要があります:
SET GLOBAL net_read_timeout = 600;
SET GLOBAL net_write_timeout = 600;
パラメータ値が300秒より長くなっていることを確認してください。推奨設定は600秒です。
ステップ3:フル移行を実行する
- AWS DMSコンソールで
Replication instancesを選択し、Create replication instanceをクリックしてレプリケーションインスタンスを作成します。 Endpointsを選択し、Create endpointをクリックしてソースエンドポイントとターゲットエンドポイントを作成します:- MySQLからOceanBaseへ:ソースエンドポイントはMySQL、ターゲットエンドポイントはOceanBaseです。
- OceanBaseからMySQLへ:ソースエンドポイントはOceanBase(ODP接続経由)、ターゲットエンドポイントはMySQLです。
Tasksを選択し、Create Taskをクリックして移行タスクを作成します。移行タイプはMigrate onlyを選択します。- 移行タスクを開始し、タスクの状態を監視します。
Successfulは移行が成功したことを示します。 - 移行結果を検証し、データの整合性を確認します。
ステップ5:増分移行を実行する
継続的なデータ同期が必要な場合は、増分移行を設定します。
- ソースデータベースでbinlogが有効になっている(MySQLの場合)またはBinlogサービスがデプロイ済みである(OceanBaseの場合)ことを確認します。
- AWS DMSコンソールで
Tasksを選択し、Create Taskをクリックして移行タスクを作成します。移行タイプとしてMigrate and replicateまたはReplicate onlyを選択します。 - 移行タスクを開始し、CDCステータスを監視します。
Loadcompleted,replication ongoingは増分移行中を表します。 - 増分データの同期状況を検証します。
注意
OceanBaseからMySQLへの増分移行は、ODPを介した接続でなければならず、OBServerに直接接続することはできません。
結果の検証
実行が成功した後、以下の手順で移行結果を検証します。
AWS DMSコンソールにログインします。
移行タスクの状態を確認し、タスクの状態が
SuccessfulまたはLoadcompleted,replication ongoing(増分移行)であることを確認します。タスク統計情報を確認し、移行されたテーブル数、レコード数、エラー数を確認します。
ターゲットデータベースに接続し、データ検証クエリを実行して、ソース側とターゲット側のデータレコード数を比較します。
SELECT COUNT(*) FROM table_name;重要なデータを抽出して検査し、データの一貫性を確認します。