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

Data Management:ロックレス変更チケットを使用したロックレススキーマ変更の実行

最終更新日:Dec 09, 2025

データベーステーブルのスキーマを変更する際のテーブルロックの問題を防ぐため、Data Management (DMS) はロックレススキーマ変更機能を提供しています。この機能は、ネイティブのオンラインデータ定義言語 (DDL) 操作中に発生する可能性のある、テーブルロックやプライマリインスタンスとスタンバイインスタンス間のレプリケーション遅延によるビジネスの中断を防ぐのに役立ちます。このトピックでは、ロックレス変更チケットを送信してロックレススキーマ変更を実行する方法について説明します。

前提条件

  • データベースタイプが RDS for MySQLPolarDB for MySQLMyBase for MySQL、またはその他の MySQL ソースであること。

    説明

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

  • データベースエンジンが InnoDB、RocksDB、または X-Engine であること。

  • データベースでバイナリログが有効になっていること。

    説明
    • PolarDB for MySQL では、バイナリログはデフォルトで無効になっています。詳細については、「バイナリログの有効化」をご参照ください。

    • バイナリログフォーマットは ROW である必要があります。データベースが以前に MIXED フォーマットを使用していた場合は、フォーマットを ROW に変更する必要があります。その後、DMS でロックレススキーマ変更を実行する前に、データベースサーバーを再起動するか、すべての古い接続を強制終了する必要があります。

  • インスタンスのコントロールモードは「安定的な変更」または「セキュリティコラボレーション」である必要があります。詳細については、「コントロールモードの表示」をご参照ください。

  • インスタンスでロックレススキーマ変更が有効になっていること。

注意事項

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

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

      説明

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

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

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

  • データベースに十分なディスク領域があることを確認してください。データをコピーするためにターゲットデータベースに一時テーブルが作成されます。利用可能なディスク領域がターゲットテーブルのサイズの 2 倍以上であることを確認してください。ディスク領域が不足すると、インスタンスがロックされる可能性があります。詳細については、「データベースのパフォーマンス」をご参照ください。

  • ターゲットテーブルにはプライマリキーまたはユニークキーが必要です。ロックレススキーマ変更中、プライマリキーまたはユニークキーは、セグメント化された完全データコピーとその後の増分更新に使用されます。

    説明

    ターゲットテーブルにプライマリキーのみ、またはユニークキーのみがある場合、スキーマ変更中にキーを更新するとタスクは失敗します。

  • ターゲットテーブル名は 56 文字を超えることはできません。

  • DMS のロックレススキーマ変更機能は、PolarDB-X (PolarDB-X 1.0 および PolarDB-X 2.0 を含む)、RDS for PostgreSQL、またはその他の MySQL 以外のデータベースではサポートされていません。

  • テーブルスキーマを変更するには、ALTER TABLE 構文を使用してください。CREATE INDEX などの構文はサポートされていません。

  • PolarDB インスタンスの場合、元のテーブルの最終的なロック時間は、テーブル切り替えロックのタイムアウトよりもはるかに長くなることがあります。これは、読み取り専用ノードでの長時間トランザクションが、ロックを取得した後のプライマリノードに影響を与えるためです。これにより、プライマリノードでの DDL が完了せず、テーブルロックが延長される可能性があります。これはパラメーターを変更することで回避できます。

操作手順

説明

以下の手順では、「セキュリティコラボレーション」モードのインスタンスを例として使用します。

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

    説明

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

  3. ロックレス変更チケットを設定します。次の表に、一部のパラメーターを示します。

    詳細については、「操作手順」をご参照ください。

    パラメーター

    説明

    データベース

    1 つ以上のターゲットデータベースを検索して選択します。

    • マイパーミッション:変更権限を持つデータベースのみを検索して選択できます。

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

      説明

      ターゲットデータベースの変更権限がない場合は、上部のメニューバーで [セキュリティとディザスタリカバリ (DBS)] > [権限センター] > [権限チケット] を選択します。[権限チケット] ページで、[権限のリクエスト] > [DB 権限] をクリックして、必要な権限をリクエストします。

    実行方法

    チケットの実行メソッドを選択します。

    • 承認後にチケット送信者が実行

    • 承認後に自動実行

    • 最終承認者が実行

    説明

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

    影響を受けた行

    この更新によって影響を受けるデータ行の推定数。

    [変更 SQL]

    ALTER TABLEOPTIMIZE などの DDL 文を入力します。

    説明

    データ操作言語 (DML) 文を入力した場合、DML ロックレス変更タスクを実行することになります。詳細については、「DML ロックレス変更」をご参照ください。

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

    システムは自動的に SQL 事前チェックを実行します。事前チェックに失敗した場合は、[SQL を変更] をクリックして、失敗の理由に基づいて SQL 文を修正し、再度チケットを送信します。

  5. チケットが承認された後、チケット詳細ページの [実行] セクションに移動し、[変更を実行] をクリックします。

  6. タスク実行パラメーターを設定します。

    設定項目

    説明

    実行ポリシー

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

    • [スケジュール実行]:タスクの開始時刻を選択します。[実行を確認] をクリックすると、タスクは指定された時刻に実行されます。

    説明

    スケジュールされたタスクの実際の実行時間には、±1 分の誤差が生じる場合があります。

    [終了時刻の指定]

    タスクの終了時刻を指定します。指定した終了時刻までにタスクが完了しない場合、システムは残りの SQL タスクの実行を停止します。これにより、ピーク時間中にタスクが実行され、ビジネス運用に影響を与えるのを防ぎます。

    説明

    タスクの実際の終了時間には、±1 分の誤差が生じる場合があります。

    [プライマリ/スタンバイチェックを有効化]

    このチェックを有効にすると、プライマリインスタンスとスタンバイインスタンス間のリアルタイムのデータ同期、高可用性、および障害からの迅速な回復が保証されます。

    グレースケールタイプ

    SQL 文をバッチで実行するためのポリシー。

    • [グレースケールなし]:DMS はタスク内のすべての SQL 文を自動的に実行します。

    • [最初の SQL 文が成功した後に一時停止]:最初の SQL 文が正常に実行された後、DMS はタスクを自動的に一時停止します。続行するには、[再試行] をクリックします。残りの SQL 文は、それ以上の一時停止なしで一度に実行されます。

    • [各 SQL 文が成功した後に一時停止]:各 SQL 文が実行された後、タスクは自動的に一時停止します。次の SQL 文を実行するには、手動で [再試行] をクリックする必要があります。

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

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

    • [実行] セクションでは、タスクの実行ステータス、タスク設定、詳細、およびスケジューリングログを表示できます。

    • ロックレス変更の進捗状況は、[運用管理] > [タスク管理] でも確認できます。詳細については、「ロックレス変更の進捗状況の表示」をご参照ください。

インスタンスでロックレススキーマ変更を有効にすると、インスタンスで実行する次のタイプのスキーマ変更チケットおよびタスクでもロックレスメソッドが優先されます。