すべてのプロダクト
Search
ドキュメントセンター

Data Management:ロックフリーの DDL 操作を実行する

最終更新日:May 23, 2025

データ管理 (DMS) は、ロックフリーの DDL 機能を提供します。この機能を使用すると、テーブルをロックせずにスキーマを変更できます。これにより、スキーマの変更によって発生するテーブルのロックによるビジネスへの影響を防ぎます。また、ネイティブのオンライン DDL 操作を使用してスキーマを変更する場合に、プライマリ データベースとセカンダリ データベース間の同期遅延を防ぎます。このトピックでは、ロックフリーの DDL 操作を実行する方法について説明します。

前提条件

  • データベースの種類は、ApsaraDB RDS for MySQLPolarDB for MySQLApsaraDB MyBase for MySQL、またはその他のソースの MySQL データベースです。

    説明

    その他のソースのデータベースとは、他のクラウド サービス プロバイダーまたは自己管理データベースのデータベースを指します。

  • データベースエンジンは InnoDB、RocksDB、または X-Engine です。

  • データベースでバイナリロギング機能が有効になっています。

    説明

    デフォルトでは、PolarDB for MySQL クラスタではバイナリロギング機能は無効になっています。

  • データベースインスタンスは、DMS で安定的な変更モードまたはセキュリティコラボレーションモードで管理されています。詳細については、「インスタンスの制御モードを表示する」をご参照ください。

  • データベースインスタンスで ロックフリーのスキーマ変更機能 が有効になっています。

使用上の注意

  • 読み取りおよび書き込み権限を持つデータベースアカウント、または特権データベースアカウントを使用する必要があります。使用するデータベースアカウントに必要な権限がない場合は、次のいずれかの操作を実行できます。

    • データベースアカウントに権限を付与します。詳細については、「MySQL データベースのユーザー権限を管理する」をご参照ください。

      説明

      データベースアカウントに ALL PRIVILEGES 権限、または以下の読み取りおよび書き込み権限を付与します。

      ALTER、CREATE、DELETE、DROP、INDEX、INSERT、LOCK TABLES、SELECT、TRIGGER、UPDATE、REPLICATION CLIENT、および REPLICATION SLAVE 権限。

    • データベースアカウントを変更します。詳細については、「データベースインスタンスの変更」をご参照ください。

  • ロックフリー DDL 操作を実行するデータベースに十分なディスク容量があることを確認してください。これは、DMS が一時テーブルを作成し、元のテーブルのデータを一時テーブルにコピーする必要があるためです。データベースインスタンスの使用可能なディスク容量が、ロックフリー DDL 操作を実行するテーブルのサイズの 2 倍以上であることを確認する必要があります。データベースインスタンスのディスク容量が不足している場合、インスタンスはロックされます。詳細については、「データベースインスタンスのパフォーマンス詳細を表示する」をご参照ください。

  • ロックフリー DDL 操作を実行するテーブルに、プライマリキーまたは一意キーのフィールドが含まれていることを確認してください。ロックフリー スキーマ変更を実行すると、プライマリキーまたは一意キーフィールドを使用して、テーブルからデータの全部または一部がコピーされ、増分データが同期されます。

    説明

    テーブルにプライマリキーフィールドまたは一意キーフィールドのみが含まれている場合は、スキーマ変更中にプライマリキーフィールドまたは一意キーフィールドが更新されないようにしてください。そうでない場合、スキーマ変更タスクは失敗します。

  • WordPress の設定中に問題が発生した場合は、「トラブルシューティング ガイド」をご参照ください。

  • DMS のロックフリースキーマ変更機能は、PolarDB-X 1.0、PolarDB-X 2.0、ApsaraDB RDS for PostgreSQL などの MySQL 以外のデータベースをサポートしていません。

手順

説明

この例では、セキュリティコラボレーションモードで管理されているデータベースインスタンスを使用します。

  1. DMS コンソール V5.0 にログインします。
  2. 上部のナビゲーションバーで、[データベース開発] > [データ変更] > [ロックフリー変更] を選択します。

    説明

    DMS コンソールをシンプルモードで使用している場合は、コンソールの左上隅にある 2023-01-28_15-57-17.png アイコンにポインターを移動し、[すべての機能] > [データベース開発] > [データ変更] > [ロックレス変更] を選択します。

  3. 表示されるページで、次のパラメーターを構成します。

    パラメーターの詳細については、「手順」をご参照ください。

    パラメーター

    説明

    データベース

    ドロップダウンリストから、スキーマ変更を実行するデータベースを選択します。キーワードを入力してデータベースを検索することもできます。1 つ以上のデータベースを指定できます。

    • 権限あり: 変更権限を持つデータベースのみを検索または選択できます。

    • すべて: メタデータアクセス制御が有効になっているデータベースを除くすべてのデータベースを検索または選択できます。

      説明

      データベースに対する変更権限がない場合は、上部のナビゲーションバーで [セキュリティと仕様] > [権限センター] > [権限チケット] を選択します。[権限チケット] タブで、右上隅にある [アクセス申請] > [データベース権限] を選択します。[アクセス申請チケット] ページで、必要な権限を申請します。

    実行方法

    チケットの実行方法。有効な値:

    • チケット申請者が承認時に実行

    • 承認時に自動的に実行

    • 最後の承認者が実行

    説明

    DMS 管理者の場合は、構成管理[O&M] モジュールの 構成管理 ページで実行方法を変更できます。詳細については、「」をご参照ください。

    影響を受ける行

    データ変更の影響を受ける可能性のあるデータ行の推定数。

    変更用の SQL 文

    フィールドに ALTER TABLEOPTIMIZE などの DDL 文を入力します。

    説明

    DML 文を入力して、ロックフリー DML 操作を実行することもできます。詳細については、「ロックフリー DML 操作を実行する」をご参照ください。

  4. [送信] をクリックします。

    DMS は SQL 文の事前チェックを実行します。事前チェックが失敗した場合は、[事前チェック] ステップの [変更用の SQL 文] をクリックして SQL 文を変更し、再試行してください。

  5. チケットが承認されたら、[変更の実行][実行] ステップの をクリックします。

  6. タスクについて、次の表に示すパラメーターを構成します。

    パラメーター

    説明

    実行戦略

    • すぐに実行: これはデフォルト値です。[実行の確認] をクリックすると、タスクはすぐに実行されます。

    • スケジュール: このオプションを選択した場合は、タスクの開始時刻を指定する必要があります。[実行の確認] をクリックすると、タスクは指定された時刻に実行されます。

    説明

    実際の実行時刻は、指定された実行時刻から ± 1 分のずれが生じる場合があります。

    終了時刻の指定

    タスクの終了時刻を指定します。タスクが完了しているかどうかに関係なく、システムは指定された終了時刻にタスクを停止します。これにより、ピーク時にタスクがビジネスに影響を与えるのを防ぎます。

    説明

    実際のタスク終了時刻は、指定された終了時刻から ± 1 分のずれが生じる場合があります。

    プライマリ/セカンダリノードチェック

    この機能を有効にすると、プライマリインスタンスとセカンダリインスタンス間のデータ同期を継続的に維持し、高可用性と迅速なエラー回復を実現できます。

    カナリアリリース種別

    SQL 文を実行するためのポリシー。有効な値:

    • カナリアリリースなし: DMS はタスク内のすべての SQL 文を自動的に実行します。

      最初の SQL 文の実行後に一時停止: 最初の SQL 文が正常に実行されると、DMS は SQL の実行を自動的に一時停止します。続行する必要がある場合は、[再試行] をクリックします。その後、DMS は一時停止することなく、残りの SQL 文をすぐに実行します。

      SQL 文の実行後に一時停止: DMS は各 SQL 文の実行後に一時停止します。次の SQL 文を実行するには、[再試行] を手動でクリックする必要があります。

  7. [実行の確認] をクリックします。

    説明

    DMS がタスクを実行しているときに、いつでもタスクを一時停止できます。一時停止されたタスクは、再開時に最初から再起動されます。

    • [実行] ステップで、タスクのステータス、設定、詳細を表示できます。タスクのスケジューリングログを表示することもできます。

    • または、上部のナビゲーションバーで [O&M] > [タスク] を選択することもできます。[タスク] タブで、タスクを見つけて、ロックフリースキーマ変更タスクの進捗状況を表示します。

指定したデータベースインスタンスに対してロックフリースキーマ変更機能を有効にすると、特定の種類のチケット (このトピックで説明されているチケットの種類を含む) を送信したり、特定の種類のタスクを実行したりするときに、DMS はこの機能を優先的に適用します。詳細については、以下のトピックをご参照ください。