データ管理 (DMS) が提供するロックフリーのスキーマ変更機能を使用するには、管理するデータベースインスタンスに対してこの機能を有効にする必要があります。このトピックでは、ロックフリーのスキーマ変更機能を有効にする方法について説明します。
前提条件
データベースタイプは、ApsaraDB RDS for MySQL、PolarDB for MySQL、MyBase for MySQL、またはその他のソースからの MySQL データベースです。
データベースインスタンスは、DMS で安定的な変更またはセキュリティコラボレーションモードで管理されています。詳細については、「インスタンスの制御モードを表示する」をご参照ください。
データベース管理者 (DBA) または DMS 管理者です。ユーザーのロールを表示する方法の詳細については、「システムロールを表示する」をご参照ください。
手順
- DMS コンソール V5.0 にログインします。
左側のナビゲーションウィンドウで、[データベースインスタンス] をクリックします。ロックフリーのスキーマ変更機能を有効にするデータベースインスタンスを見つけ、データベースインスタンスを右クリックし、ビジネス要件に基づいて [ロックフリーのスキーマ変更] > [有効化 (DMS Onlineddl 優先)] または [有効化 (mysql ネイティブ Onlineddl 優先)] を選択します。
説明または、上部のナビゲーションバーで
を選択することもできます。[インスタンスリスト] ページの [インスタンス] タブで、ロックフリーのスキーマ変更機能を有効にするインスタンスを見つけ、[アクション] 列の [詳細] > [編集] を選択します。[編集] ダイアログボックスの [詳細情報] セクションで、[ロックフリーのスキーマ変更] ドロップダウンリストから [有効化 (DMS Onlineddl 優先)] または [有効化 (mysql ネイティブ Onlineddl 優先)] を選択します。オプションの説明:
オプション
説明
備考
有効化 (DMS Onlineddl 優先)
DMS は独自のロックフリー DDL 機能を使用して、テーブルをロックせずにスキーマを変更できるようにします。
説明次の場合、ロックフリー DDL 機能は使用できず、MySQL のネイティブオンライン DDL 操作が自動的に使用されます。これらの場合にテーブルがロックされたり、エラーが発生したりすると、タスクは失敗します。
スキーマを変更するテーブルが空の場合。空のテーブルで SQL 文を実行してもリスクはありません。この場合、MySQL のネイティブオンライン DDL 操作の方が高速です。
SQL 文に一意キーが追加されている場合。DMS のロックフリー DDL 機能は、一意キーを追加する SQL 文をサポートしていません。
スキーマの変更には、MySQL のネイティブオンライン DDL 操作を使用するよりも時間がかかります。ただし、この機能はデータコピーに影響を与えず、レイテンシも発生しません。
有効化 (mysql ネイティブ Onlineddl 優先)
DMS は、スキーマを変更するために、優先的に MySQL のネイティブオンライン DDL 操作を使用します。この場合にテーブルがロックされたり、スキーマの変更が失敗したりすると、DMS はロックフリー DDL 機能を使用してスキーマを変更します。これにより、テーブルがロックされないことが保証されます。
スキーマの変更は高速ですが、レプリケーションの並列スレッドがシリアルスレッドになる可能性があります。これにより、プライマリデータベースとセカンダリデータベース間の同期遅延が発生します。
閉じる
DMS は、SQL 文を実行のために MySQL データベースにルーティングします。この場合、DMS は文を処理しません。
該当なし
[ロックフリーのスキーマ変更の修正] メッセージで、[OK] をクリックします。
ロックフリーのスキーマ変更機能を有効にすると、「ロックフリーのスキーマ変更チケットを送信してテーブルのスキーマを変更する」ことができます。
次の手順
指定したデータベースインスタンスに対してロックフリーのスキーマ変更機能を有効にすると、次のタイプのチケットを送信するときに、DMS は優先的にこの機能を適用します。
- 説明
通常のデータ変更チケットを送信して、テーブルのスキーマを変更できます。