DTS を使用すると、専用回線を使用してオンプレミスデータベースをクラウドに移行できます。ここでは例として、専用回線を使用してオンプレミス MySQL から ApsaraDB for MySQL へ移行する方法について説明します。
前提条件
移行の前に、オンプレミスデータベースと DTS サーバー間の接続を次の通り設定します。
- オンプレミスデータベースが専用回線を通して Apsara VPC に接続されていることを確認してください。
- 専用回線のエッジルーターで、DTS サーバーの IP セグメントに向かうルートを追加します。エッジルーターの詳細ページで、[ルートの追加] をクリックし、パラメーターを設定します。
- ターゲットセグメント: Apsara VPC が配置されているリージョンの DTS サーバーの IP セグメント。
- 次ホップ方向: VPC。
- 次ホップ: VBR ルータインターフェイス。
専用回線のカスタマー側のアクセスデバイスで、DTS サーバーの IP セグメントを指す静的ルートを追加します。
ip route {DTS IP セグメント} {Apsara 側 IP}
たとえば、DTS サーバの IP セグメントが 100.104.52.0/24 で、エッジルーターの Apsara 側の IP が 10.100.0.1 である場合、静的ルートは
ip route 100.104.52.0/24 10.100.0.1
です。前述の DTS サーバー IP セグメントは、オンプレミスデータベースに接続された Apsara VPC のリージョンに依存します。次の表を参照してください。
リージョン DTS サーバー IP セグメント 杭州 100.104.52.0/24 北京 100.104.183.0/24 青島 100.104.72.0/24 上海 100.104.205.0/24 深セン 100.104.205.0/24 上海 Finance Cloud 100.104.175.0/24 深セン Finance Cloud 100.104.72.0/24 シリコンバレー 100.104.175.0/24 中国香港 100.104.233.0/24 シンガポール 100.104.188.0/24 マレーシア 100.104.5.0/24
必要なアクセス権限
DTS を使用してオンプレミス MySQL から RDS for MySQL にデータを移行する場合、ソースおよびターゲットのインスタンスのアカウントに、移行タイプに基づいて権限を付与する必要があります。必要な権限は次の通りです。
移行タイプ | オンプレミス MySQL データベース | ターゲット RDS for MySQL データベース |
---|---|---|
オブジェクト構造移行 | select | 読み書き権限 |
既存データ移行 | select | 読み書き権限 |
変更データレプリケーション |
|
読み書き権限 |
移行手順
次に、専用回線を使ったオンプレミス MySQL から ApsaraDB RDS for MySQL への移行方法を、例として説明します。
RDS インスタンスのデータベース作成
データ移行中に、移行対象のデータベースがターゲット RDS インスタンスに存在しない場合、DTS は対応するデータベースを、ターゲット RDS インスタンス内に自動的に作成します。ただし、次のいずれかの場合、移行タスクを設定する前に、手動でデータベースを作成する必要があります。
- データベース名が RDS で定義された仕様に準拠していない (名前は最大 64 文字で、英小文字・数字・下線・ハイフンで構成され、英小文字で始まり、英小文字または数字で終わります)。
- ソースインスタンスのデータベース名がターゲットインスタンスのデータベース名と異なる。
アカウントの作成
移行タスクの設定には、ソースインスタンスおよびターゲットインスタンスにアカウントを作成する必要があります。アカウントには必要なアクセス権限の項に記載されているアクセス権限が必要です。
- ソースのオンプレミス MySQL インスタンスアカウントに必要な権限がない場合は、GRANT 構文で権限を与えます。
- ターゲット ApsaraDB RDS インスタンスに読み書き権限を持つアカウントがない場合は、アカウントの作成を参照してアカウントを作成します。
binlog の有効化
変更データレプリケーションを実行するには、ソースデータベースに対して binlog を有効にする必要があります。binlog を有効にするには、次の手順に従います。
次のコマンドを実行して、ソースデータベースで binlog が有効かどうかを確認します。
log_bin
がOFF
の場合、binlog はソースデータベースでは有効になっていません。binlog を有効にするには、ローカル MySQL データベースで次の設定を行います。log_bin
をmysql_bin
に変更します。binlog_format
をrow
に変更します。server_id
を 1 より大きい整数に変更します。- バージョンが 5.6 の場合、
binlog_row_image
をfull
に変更してください。
注意: これらの変更後に MySQL プロセスを再起動してください。
次のコマンドを実行して、ソースデータベースの
binlog_format
がrow
であるかどうかを確認してください。binlog_format
がrow
でない場合、次のコマンドを実行してrow
に設定します。注意: 変更を有効にするには、変更後に MySQL の接続を切断して再接続してください。
MySQL バージョンが 5.6.2 以降の場合は、次のコマンドを実行して、ソースデータベースの
binlog_row_image
がfull
であるかどうかを確認してください。binlog_row_image
がfull
でなければ、次のコマンドを実行してfull
に設定してください。
移行タスクの設定
移行タスクを設定するには、次の手順を実行します。
DTS コンソールにログインします。
左側のナビゲーションペインで [データ移行] をクリックします。
[移行タスクの作成] をクリックします。
オンプレミス MySQL データベースとターゲット RDS インスタンスの接続情報を次のように設定してから、[ホワイトリストを承認して次のステップに進む] をクリックします。
タスク名。デフォルトでは、DTS によって自動的に移行タスクの名前が生成されます。この名前は変更することができ、一意である必要はありません。
ソースデータベース
- インスタンスタイプ: Express Connect DB。
- インスタンスリージョン: オンプレミスデータベースに接続された Apsara VPC のリージョンを指定します。
- VPC ID: オンプレミスデータベースに接続された Apsara VPC の ID を指定します。
- データベースエンジン: MySQL を指定します。
- ホスト名または IP アドレス: ソース MySQL データベースにアクセスするための IP アドレスを指定します。
- ポート: MySQL データベースのリスナーポートを指定します。
- データベースアカウント: MySQL データベースのアクセスアカウントを指定します。
- データベースのパスワード: MySQL アクセスアカウントのパスワードを指定します。
ターゲットデータベース
- インスタンスタイプ: RDS インスタンス。
- インスタンスリージョン: ターゲット RDS インスタンスのリージョンを指定します。
- RDS インスタンス ID: ターゲット RDS インスタンスのインスタンス ID を指定します。RDS インスタンスは、クラシックネットワークまたは VPC ネットワークのいずれにも設置できます。
- データベースアカウント: RDS インスタンスへのアクセスアカウントを指定します。
- データベースのパスワード: RDS アクセスアカウントのパスワードを指定します。
移行タイプと移行対象オブジェクトを設定します。
移行タイプ
サービスを停止せずに移行を実行するには、3 つの移行タイプすべてを選択します。
既存データのみを移行するには、[オブジェクト構造移行] および [既存データ移行] を選択します。
移行対象オブジェクト
オブジェクトは、データベース、テーブル、およびカラムです。デフォルトでは、オブジェクトの移行後、ターゲットインスタンスのオブジェクト名はソースインスタンスのオブジェクト名と同じになります。それらが異なるようにするには、オブジェクト名マッピング機能を使用します。
事前チェックします。
移行が開始される前に事前チェックが実行されます。
事前チェックが失敗した場合は、エラー項目の横にある [失敗] をクリックして問題を解決し、再度事前チェックを実行してください。
移行タスクを開始します。
事前チェックが成功したら、移行タスクを開始します。タスクリストで、移行のステータスと進行状況を表示できます。
変更データレプリケーションは、動的同期のプロセスです。変更データレプリケーションに遅延がない場合は、ターゲットデータベースのデータを検証します。データが正しい場合は、移行タスクを停止し、サービスをターゲットデータベースに切り替えます。