本記事では、データ移行における構造移行でサポートされている操作について説明します。
背景
構造移行は、ソースデータベースのデータオブジェクト定義(テーブル、インデックス、制約、コメント、ビューなど)をターゲットデータベースに移行する役割を担い、一時テーブルは自動的に除外されます。ソースデータベースがOceanBaseデータベースでない場合、ターゲットのOceanBaseテナントタイプに基づく構文定義基準に従って、データ型とSQL構文を自動的に変換・組み立てた後、ターゲットデータベースにコピーします。
データ移行タスクは、事前チェックに合格すると、スキーマ移行 ステップに進みます。データ移行タスクの詳細ページに移動し、スキーマ移行 タブをクリックすると、構造移行の全体状態、開始時間、終了時間、合計所要時間、およびテーブルとビューの移行進捗状況を確認できます。
構造移行タスクが 実行中 または 失敗しました の状態にある場合、異なる状態のターゲットオブジェクトに対して、次の表のように異なる操作を実行できます。構造移行タスクが 完了しました の状態にある場合、ターゲットオブジェクトの作成構文の確認のみがサポートされます。
状態 |
サポートされる操作 |
|---|---|
| 初期化中 | - |
| DDL取得成功、作成中、実行待ち | 確認 |
| 完了、変換ありで完了、スキップ済み | 削除、確認 |
| 失敗 | 再試行、スキップ、削除、変更、詳細確認 |
| DDL取得失敗 | 再試行、スキップ、変更、確認 |
| サポートされていません 通常、ソース側にターゲット側でサポートされていない作成構文が存在する場合、この状態が発生します。 |
スキップ、削除、変更、確認 |
前提条件
データ移行タスクが作成・開始されていること。詳細については、データ移行モジュールの該当タイプの新規データ移行タスクドキュメントをご参照ください。
使用上の制限
プロジェクトロールが プロジェクト所有者、プロジェクト管理者、または データサービス管理者 のユーザーのみが、再試行/全失敗オブジェクトの再試行、ターゲットオブジェクトのスキップと削除、作成構文の変更などの操作をサポートします。
本記事で説明する構造移行操作は、実行中 または 失敗しました の状態の構造移行タスクに適用されます。完了済み の状態の構造移行タスクでは、ターゲットオブジェクトの作成構文の確認のみがサポートされます。
構造移行は、テーブル、インデックス、ビュー、comments、Check制約の移行をサポートしますが、一時テーブル、event、type、function、procedureなどのオブジェクトや制約の移行はサポートしません。
再試行/全失敗オブジェクトの再試行
失敗しました および DDLステートメントの取得に失敗しました。 の状態にあるターゲットオブジェクトは、個別再試行または全再試行操作をサポートします。直接再試行するか、オブジェクトを変更してから再試行することもできます。
単一失敗オブジェクトの再試行:スキーマ移行 ページで、失敗オブジェクトの操作列にある 再試行 をクリックします。
全失敗オブジェクトの再試行
スキーマ移行 ページで、右上の 失敗したすべてのオブジェクトを再試行する をクリックします。
ダイアログで、OK をクリックします。
ターゲットオブジェクトのスキップ
失敗しました、DDLステートメントの取得に失敗しました。、および サポートされていません の状態にあるターゲットオブジェクトは、スキップ操作をサポートします。
注意
- スキップ操作を行う前提として、ターゲット側に対応する移行オブジェクトを準備している必要があります。ターゲット側に移行オブジェクトが存在しない場合、ここでスキップ操作を行っても、フル移行 ステップでエラーが発生します。
- オブジェクトをスキップした後は、再度実行できませんので、ご注意ください。
スキーマ移行 ページで、ターゲットオブジェクトの操作列にある スキップ をクリックします。
ダイアログボックスで、わかりました をクリックします。
スキーマ移行 ページで、ターゲットオブジェクトの操作列にある 削除 をクリックします。
ダイアログボックスで、OK をクリックします。
スキーマ移行 ページで、ターゲットオブジェクトの操作列の ... > 変更する をクリックします。
テーブル作成構文の変更 ダイアログボックスで、実行失敗したDDLやエラーを確認し、そのDDL変換結果の定義を修正します。
保存 をクリックします。
スキーマ移行 ページで、ターゲットオブジェクトの操作列にある ... > 詳細を見る をクリックします。
詳細を見る ダイアログで、実行失敗の原因を確認します。
ターゲットオブジェクトをスキップする操作は以下のとおりです:
ターゲットオブジェクトの削除
失敗しました、完了済み、完了(変換済み)、スキップ済み、DDLステートメントの取得に失敗しました。、および サポートされていません の状態にあるターゲットオブジェクトは、すべて削除操作が可能です。
注意
オブジェクトを削除すると、現在のデータ移行タスクではそのオブジェクトは移行されなくなります。慎重に操作してください。
作成構文の変更
失敗しました および DDLステートメントの取得に失敗しました。 の状態にあるターゲットオブジェクトでは、テーブルの作成構文を変更できます。
作成構文の確認
初期化中 および 失敗しました の状態を除き、その他の状態にあるターゲットオブジェクトでは、テーブルの作成構文を確認できます。
スキーマ移行 ページで、ターゲットオブジェクトの操作列にある 表示 をクリックすると確認できます。テーブルの作成構文が完全に互換性がある場合は、OBServerノードで実行されるDDL構文が表示されます。完全に互換性がない場合は、変換後の作成構文が表示されます。
失敗したオブジェクトの詳細を確認する
失敗しました 状態のターゲットオブジェクトでは、エラーの詳細を確認できます。