操作シナリオ
gh-ost、pt-online-schema-change(以下、pt-oscと略します)ツールを使用してソースデータベース内のテーブルにOnline DDL操作を実行する場合、Online DDLの変更によって生成された一時テーブルをターゲットデータベースに移行する必要があります。
DTSは、移行オブジェクトを選択する際に、対象テーブルの一時テーブル名を事前に関連付けることをサポートしており、その後ソースデータベースで一時テーブルが生成されたときに併せて移行します。
gh-ostツールを使用してテーブル表名にOnline DDLを実行する場合、DTSは一時テーブル_表名_ghc、_表名_gho、_表名_delをターゲットデータベースに移行することをサポートしています。
pt-oscツールを使用してテーブル表名にOnline DDLを実行する場合、DTSは一時テーブル_表名_new、_表名_oldをターゲットデータベースに移行することをサポートしています。
適用範囲
MySQL、MariaDB、Percona、TDSQL-C MySQL間のデータ移行。
制約事項
テーブルマッピング(テーブルの名前変更)機能は、Online DDL一時テーブルの移行機能と競合するため、いずれか一方の機能のみを選択して使用できます。
操作手順
1. DTSコンソールにログインし、左側のナビゲーションでデータ移行ページを選択し、移行タスクを作成します。 2. 「移行オプションの設定と移行オブジェクトの選択」ステップで、Online DDL一時テーブルを同期するかどうかとOnline DDLツールをチェックします。
gh-ostをチェックすると、DTSはgh-ostツールが生成した一時テーブル名(_表名_ghc、_表名_gho、_表名_del)をターゲットデータベースに移行します。
pt-oscをチェックすると、DTSはpt-oscツールが生成した一時テーブル名(_表名_new、_表名_old)をターゲットデータベースに移行します。
説明
右側の選択済みオブジェクトで、指定したテーブルオブジェクトをチェックする必要があります。そうすることで、下に「Online DDL一時テーブルを同期するかどうか」のボタンが表示されます。データベース名をチェックするか、Tablesをチェックした場合、「Online DDL一時テーブルを同期するかどうか」のボタンは表示されません。
ソースデータベースに一時テーブル名_表名_new、_表名_oldと同じテーブル名が既に存在する場合、pt-oscは他の一時テーブルを生成します。pt-oscが生成する他の一時テーブル名は固定ではないため、DTSは他の一時テーブルを移行できません。この場合、移行オブジェクトとしてこのテーブルのみを選択することはできず、このテーブルが属するデータベース全体(またはインスタンス全体)を選択する必要があります。そうしないと、Online DDLの変更によって生成された一時テーブルデータをターゲットデータベースに移行できません。