Todos os produtos
Search
Central de documentação

PolarDB:Online Copy DDL

Última atualização: Nov 03, 2026

PolarDB for MySQL introduz o recurso Online Copy DDL, que reduz as interrupções nos negócios causadas pelas operações tradicionais de Copy DDL (como MODIFY COLUMN e conversões entre tabelas padrão e particionadas). Essas operações mantêm um bloqueio MDL durante toda a execução.

Informações básicas

Durante a execução padrão do Copy DDL, o MySQL mantém um bloqueio MDL-SNW (Shared No Write) que impede continuamente todas as operações de escrita (INSERT/UPDATE/DELETE) na tabela. Esse comportamento pode causar acúmulo de conexões e, em casos graves, levar ao colapso do sistema. O Online Copy DDL otimiza o mecanismo de bloqueio durante a fase de cópia de dados. Ele permite operações simultâneas de leitura e escrita e garante a consistência dos dados, o que melhora significativamente a disponibilidade dos negócios durante a execução de DDL.

Escopo

Versão 8.0.2 do PolarDB for MySQL com revisão 8.0.2.2.33.1 ou posterior. Para confirmar a versão do cluster, consulte o número da versão.

Nota

O recurso Online Copy DDL está atualmente em lançamento canário. Para utilizá-lo, acesse o Quota Center, localize o nome da cota pelo ID polarm_82_online_copy_ddl e clique em Request na coluna Operation para ativar o recurso. Ao enviar a solicitação, informe o ID do cluster que você deseja habilitar (no formato pc-xxx).

Limites

Operações compatíveis:

  • Conversões entre tabelas padrão e tabelas particionadas.

  • Instruções MODIFY COLUMN. Não há suporte para modificar a posição da coluna simultaneamente.

Operações ou objetos incompatíveis:

  • Tabelas com colunas JSON.

  • Tabelas com índices espaciais (SPATIAL INDEX).

  • Tabelas com Global Secondary Indexes (GSIs).

  • Tabelas com particionamento híbrido.

  • Multi-master cluster (Limitless).

  • Sessões que executaram LOCK TABLES na tabela.

  • Instruções DDL que especificam explicitamente ALGORITHM=COPY com LOCK=SHARED ou LOCK=EXCLUSIVE.

Nota

Antes de executar uma operação DDL, utilize o recurso EXPLAIN DDL para verificar se a operação atual é compatível com o Online Copy DDL.

Uso

Após solicitar uma cota, os seguintes parâmetros são ativados automaticamente para uso do Online Copy DDL. Não é possível modificar esses parâmetros manualmente neste momento.

Parameter

Level

Description

loose_polar_support_online_copy_ddl_algorithm

Global

Chave principal do Online Copy DDL. Valores válidos:

  • ON: ativa o Online Copy DDL.

  • OFF (padrão): desativa o Online Copy DDL.

loose_polar_support_online_copy_ddl_algorithm_for_modify

Global

Chave do Online Copy DDL aplicável apenas a MODIFY COLUMN. Valores válidos:

  • ON: ativa a capacidade online para MODIFY COLUMN.

  • OFF (padrão): desativa o recurso.

Método 1: Especificar explicitamente o algoritmo (recomendado)

Especifique ALGORITHM=COPY, LOCK=NONE para forçar o uso do Online Copy DDL:

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

Se o erro ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED. for retornado ao usar as instruções acima, não será possível realizar a modificação atual do tipo de coluna com o algoritmo Online Copy DDL. Verifique se o parâmetro loose_polar_support_online_copy_ddl_algorithm está ativado e revise atentamente os limites.

Método 2: Selecionar automaticamente o algoritmo ideal (comportamento padrão)

Se nenhum algoritmo for especificado ou se DEFAULT for utilizado, o sistema selecionará automaticamente o método de execução mais adequado:

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

-- Method 2: Omit the clauses entirely (equivalent)
ALTER TABLE t MODIFY COLUMN a BIGINT DEFAULT NULL;
Nota

O sistema tenta primeiro o Online Copy DDL. Se as condições não forem atendidas, ele reverte automaticamente para o Copy DDL tradicional (que bloqueia a tabela) para garantir a conclusão da operação DDL.