Data Management (DMS) のロックフリーのスキーマ変更機能を使用する前に、ターゲットインスタンスでこの機能を有効にする必要があります。
前提条件
サポートされるデータベースタイプ:ApsaraDB RDS for MySQL 、PolarDB for MySQL 、MyBase for MySQL 、およびその他のソースの MySQL 。
インスタンスのコントロールモードは、安定的な変更またはセキュリティコラボレーションである必要があります。詳細については、「コントロールモードの表示」をご参照ください。
DBA または管理者のロールを持っている必要があります。ロールを確認するには、「システムロールの表示」をご参照ください。
ロックフリーのスキーマ変更の有効化
DMSコンソールV5.0 にログインします。
コンソールホームページの [データベースインスタンス] リストで、対象のインスタンスを右クリックし、[ロックフリースキーマ変更] を選択します。
説明別の方法として、上部のメニューバーからに移動します。 [インスタンスリスト] タブで、対象インスタンスの右側にあるをクリックし、[詳細情報]セクションでロックフリーのスキーマ変更を有効にします。
次の表に、各オプションの詳細を示します。
オプション
説明
備考
[有効化 (DMS オンライン DDL 優先)]
DMS は独自の DDL ロックフリー変更エンジンを使用して、テーブルがロックされないようにします。
説明次の場合、DMS オンライン DDL は使用できず、システムは自動的に MySQL のネイティブオンライン DDL にフォールバックします。DMS がネイティブ実行でテーブルがロックされるか、エラーが返されることを検出した場合、タスクは失敗します。
ターゲットテーブルが空の場合:ネイティブ実行は高速であり、空のテーブルに対する DDL の実行はリスクが低いため、ネイティブ実行が使用されます。
DMS オンライン DDL は一意制約 (UK) の追加をサポートしていません。
MySQL のネイティブオンライン DDL よりも実行速度は遅くなりますが、レプリケーション動作に影響を与えず、レプリケーションラグが発生する可能性が低くなります。
[有効化 (MySQL ネイティブオンライン DDL 優先)]
DMS はまず MySQL のネイティブオンライン DDL を試行します。DMS がネイティブ実行でテーブルがロックされるか、失敗することを検出した場合、テーブルのロックを防ぐために自動的に DMS オンライン DDL に切り替えます。
実行は比較的高速ですが、インスタンスのパラレルレプリケーションがシリアルレプリケーションにフォールバックし、レプリケーションラグが発生する可能性があります。
[無効化]
DMS はネイティブステートメントを処理せずに直接 MySQL に送信して実行します。
該当なし
[ロックフリーのスキーマ変更] ダイアログボックスで、[OK] をクリックします。
インスタンスでロックフリーのスキーマ変更を有効にした後、ロックフリーのスキーマ変更チケットを提出することができます。
ロックフリーのスキーマ変更の無効化
ロックフリーのスキーマ変更を無効にするには、有効化と同じエントリポイントを使用します。
コンソールホームページの [データベースインスタンス] リストで、対象のインスタンスを右クリックし、[ロックフリースキーマ変更 > 閉じる] を選択します。
説明トップメニューバーから [データ資産] > [インスタンス] を選択することもできます。[インスタンス] タブで、対象インスタンスの [操作] 列で をクリックし、[詳細情報] セクションでロックフリー スキーマ変更を無効にします。
[ロックフリー スキーマ変更の修正] ダイアログボックスで、[閉じる] を選択し、[OK] をクリックします。
ロックフリーのスキーマ変更を無効にすると、DMS はネイティブ DDL ステートメントを処理せずに直接 MySQL に送信して実行します。スキーマ変更中にテーブルがロックされるかどうかは、データベースエンジンのオンライン DDL サポートに依存します。
データベースがオンライン DDL をサポートしている場合、DDL 操作は短時間のメタデータロックを保持するだけで、長時間テーブルをロックしません。
データベースがオンライン DDL をサポートしていない場合、DDL 操作の実行中、テーブルはロックされます。
ロックフリーのスキーマ変更を無効化または再有効化しても、インスタンスの再起動は不要であり、インスタンスステータスやデータには影響しません。この設定は DMS 経由で提出されたスキーマ変更チケットにのみ適用され、他のクライアントによって直接実行される DDL ステートメントには影響しません。
関連操作
インスタンスでロックフリーのスキーマ変更を有効にすると、DMS はそのインスタンス上の次のタイプのチケットでこの方式を優先的に使用します。
- 説明
通常のデータ変更チケットで提出されたスキーマ変更は、 通常、ロックフリーのスキーマ変更方式を使用します 。ただし、チケットが特定のデータベースではなくインスタンス全体をターゲットとしている場合、 現在、ロックフリーのスキーマ変更はサポートされていません 。この場合、インスタンスでこの機能が有効になっていても、タスクはネイティブ実行方式にフォールバックします。
よくある質問
DMS のロックフリーのスキーマ変更を無効化および再有効化すると、何か影響がありますか?
いいえ。ロックフリーのスキーマ変更オプションを無効化および再有効化しても、インスタンスステータスやデータには影響せず、インスタンスの再起動は不要であり、データリスクもありません。ロックフリーのスキーマ変更が無効になっている期間中、DMS はネイティブ DDL を使用してスキーマ変更を実行します。ロックフリーのスキーマ変更を再有効化すると、DMS は DMS 経由で提出されたスキーマ変更チケットで、ロックフリーのスキーマ変更エンジンの使用を再開します。