Todos os produtos
Search
Central de documentação

PolarDB:Online Copy DDL

Última atualização: Jun 29, 2026

O recurso Online Copy DDL do PolarDB for MySQL reduz as interrupções nos negócios causadas por operações tradicionais de Copy DDL. Operações como MODIFY COLUMN ou a conversão entre tabelas padrão e particionadas mantêm bloqueios de metadados (MDL) durante toda a execução.

Contexto

Durante a execução padrão do Copy DDL, o MySQL mantém um bloqueio MDL-SNW (Shared No Write) que impede 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 para permitir leituras e escritas simultâneas sem comprometer a consistência dos dados.

Escopo

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

Nota

O Online Copy DDL está em liberação gradual. Para ativá-lo, acesse o Quota Center, localize a cota pelo ID polarm_82_online_copy_ddl e clique em Request na coluna Operation. Informe o ID do cluster (por exemplo, pc-xxx).

Limitações

Operações suportadas:

  • Conversão 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 não suportados:

  • Tabelas com colunas do tipo JSON.

  • Tabelas com índices espaciais (SPATIAL INDEX).

  • Tabelas com índices secundários globais (GSI).

  • Tabelas particionadas híbridas.

  • Clusters multi-master (Limitless).

  • Sessões que executaram LOCK TABLES na tabela.

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

Nota

Antes de executar uma operação DDL, utilize o comando EXPLAIN DDL para verificar se há suporte ao Online Copy DDL.

Uso

Ative o Online Copy DDL definindo o parâmetro loose_polar_support_online_copy_ddl_algorithm. Para instruções MODIFY COLUMN, ative também o parâmetro loose_polar_support_online_copy_ddl_algorithm_for_modify. Configure esses parâmetros conforme descrito em Definir parâmetros de cluster e parâmetros de nó.

Parameter

Level

Description

loose_polar_support_online_copy_ddl_algorithm

Global

Chave principal do Online Copy DDL.

  • ON: Ativa o Online Copy DDL.

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

loose_polar_support_online_copy_ddl_algorithm_for_modify

Global

Ativa o Online Copy DDL para operações MODIFY COLUMN.

  • ON: Ativado.

  • OFF (padrão): Desativado.

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 a instrução retornar ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED., a operação não suporta Online Copy DDL. Verifique se o parâmetro loose_polar_support_online_copy_ddl_algorithm está ativado e revise as limitações.

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

Quando nenhum algoritmo é especificado ou quando se utiliza DEFAULT, o sistema seleciona automaticamente o método de execução mais adequado:

-- 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;
Nota

O sistema tenta executar o Online Copy DDL primeiro. Caso as condições necessárias não sejam atendidas, ele reverte para o Copy DDL tradicional (que bloqueia a tabela) para garantir a conclusão da operação DDL.