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

PolarDB:Online Copy DDL

最終更新日:Mar 14, 2026

PolarDB for MySQL は、Online Copy DDL 機能を導入しました。この機能は、MODIFY COLUMN や標準テーブルとパーティションテーブル間の変換など、実行期間全体にわたってメタデータロック (MDL) を保持する従来の Copy DDL 操作によって引き起こされるビジネスの中断を軽減します。

背景情報

標準の Copy DDL 実行中、MySQL は MDL-SNW (Shared No Write) ロックを保持します。これにより、テーブルに対するすべての書き込み操作 (INSERT/UPDATE/DELETE) が継続的にブロックされ、接続の滞留を引き起こし、深刻な場合にはシステム障害につながる可能性があります。Online Copy DDL は、データコピーフェーズ中のロックメカニズムを最適化します。データ整合性を確保しながら、同時読み取り/書き込み操作を可能にし、DDL実行中のビジネス可用性を大幅に向上させます。

適用範囲

PolarDB バージョン 8.0.2 およびリビジョン 8.0.2.2.33.1 以降。クラスターバージョンは、バージョン番号のクエリによって確認します。

説明

Online Copy DDL 機能は現在、段階的リリース中です。この機能を使用するには、クォータセンターにアクセスします。クォータ ID polarm_82_online_copy_ddl を使用してクォータ名を見つけます。対応する [操作] 列で、[リクエスト] をクリックして機能を有効にします。リクエスト時には、有効にするクラスター ID (例: pc-xxx) を指定してください。

制限事項

サポートされる操作:

  • 標準テーブルとパーティションテーブル間の変換。

  • MODIFY COLUMN 文。カラム位置の同時変更はサポートされていません。

サポートされていない操作またはオブジェクト:

説明

DDL 操作を実行する前に、EXPLAIN DDL 機能を使用して、現在の DDL 操作が Online Copy DDL をサポートしているかどうかを判断してください。

使用方法

まず、loose_polar_support_online_copy_ddl_algorithm パラメーターを設定して、Online Copy DDL 機能を有効にします。MODIFY COLUMN 文の場合は、loose_polar_support_online_copy_ddl_algorithm_for_modify パラメーターも有効にしてください。詳細な手順については、「クラスターパラメーターとノードパラメーターの設定」をご参照ください。パラメーターの説明は次のとおりです。

パラメーター

レベル

説明

loose_polar_support_online_copy_ddl_algorithm

グローバル

Online Copy DDL のメインスイッチ。有効値:

  • ON: Online Copy DDL を有効にします。

  • OFF (デフォルト): Online Copy DDL を無効にします。

loose_polar_support_online_copy_ddl_algorithm_for_modify

グローバル

MODIFY COLUMN 専用の Online Copy DDL スイッチ。有効値:

  • ON: MODIFY COLUMN のオンライン機能を有効にします。

  • OFF (デフォルト): 無効にします。

方法1: アルゴリズムを明示的に指定する (推奨)

ALGORITHM=COPY, LOCK=NONE を指定して、Online Copy DDL の使用を強制します。

CREATE TABLE t(a int);
ALTER TABLE t MODIFY COLUMN a BIGINT DEFAULT NULL, ALGORITHM=COPY, LOCK=NONE;
説明

上記の文を使用し、ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED. というエラーが返された場合、現在のカラム型変更操作は Online Copy DDL アルゴリズムをサポートしていません。loose_polar_support_online_copy_ddl_algorithm パラメーターが有効になっていることを確認し、制限事項を注意深く確認してください。

方法2: 最適なアルゴリズムを自動的に選択する (デフォルトの動作)

アルゴリズムを指定しない場合、または DEFAULT を使用する場合、システムは最適な実行方法を自動的に選択します。

-- Method 1: Explicit DEFAULT
ALTER TABLE t MODIFY COLUMN a BIGINT DEFAULT NULL, ALGORITHM=DEFAULT, LOCK=DEFAULT;

-- Method 2: Omit completely (equivalent)
ALTER TABLE t MODIFY COLUMN a BIGINT DEFAULT NULL;
説明

システムは最初に Online Copy DDL を試行します。条件が満たされない場合、テーブルをロックする従来の Copy DDL に自動的にフォールバックします。これにより、DDL が正常に完了することが保証されます。