Todos os produtos
Search
Central de documentação

Data Management:Operação DML sem bloqueio

Última atualização: Jun 27, 2026

Para modificar um grande volume de dados em uma tabela sem bloqueá-la, utilize o recurso Lockless Change no Data Management (DMS). Esse recurso divide uma única instrução SQL em vários lotes para execução, permitindo a alteração dos dados sem bloquear a tabela. Isso reduz o impacto das operações DML no desempenho e no espaço do banco de dados. Este tópico descreve como realizar alterações de dados sem bloqueio no DMS.

Pré-requisitos

  • Tipos de banco de dados suportados:

    Mecanismo de banco de dados

    Instâncias suportadas

    MySQL

    ApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL, PolarDB for Xscale, bancos de dados MySQL de terceiros

    PostgreSQL

    ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, MyBase for PostgreSQL, bancos de dados PostgreSQL de terceiros

    MariaDB

    ApsaraDB for MariaDB, bancos de dados MariaDB de terceiros

    OceanBase

    ApsaraDB for OceanBase no modo MySQL

    Compatível com Oracle

    PolarDB for PostgreSQL (Compatible with Oracle)

  • A instância deve estar no modo de controle Stable Change ou Security Collaboration. Para mais informações, consulte Modo de controle.

Limitações

Somente as instruções UPDATE, DELETE e INSERT...SELECT são suportadas.

UPDATE e DELETE

Restrição

Detalhes

Escopo da tabela

Apenas tabela única

Cláusula WHERE

Obrigatória. Para atualizar ou excluir todas as linhas, use WHERE 1=1

Subconsultas

Não suportado

Cláusula LIMIT

Não suportado — o uso de LIMIT para paginação manual força uma varredura completa da tabela, causando o bloqueio que este recurso visa evitar

INSERT...SELECT

Restrição

Detalhes

Escopo do SELECT

Apenas tabela única

Cláusula WHERE

Obrigatória na cláusula SELECT. Para selecionar todas as linhas, use WHERE 1=1

Cláusulas não permitidas

LIMIT, ORDER BY e GROUP BY não são suportados na cláusula SELECT

Procedimento

  1. Faça login no DMS 5.0.

  2. Na barra de navegação superior, escolha Database Development > Data Change > Lockless Change.

    Nota

    Se você estiver usando o console do DMS no modo simples, clique em no ícone function no canto superior esquerdo. No painel de navegação exibido, escolha All Features > Database Development > Data Change > Lockless Change.

  3. Configure os parâmetros do ticket de Lockless Change e clique em Submit. A tabela a seguir descreve alguns dos parâmetros.

    Nota

    Este exemplo mostra a configuração para uma instância no modo Security Collaboration. Para instâncias nos modos Flexible Management ou Stable Change, é necessário configurar apenas os parâmetros Database e SQL statements for change.

    Parâmetro

    Obrigatório

    Descrição

    Database

    Sim

    Pesquise e selecione o banco de dados de destino.

    Nota

    Você deve ter permissões para alterar dados no banco de dados de destino. Para mais informações, consulte Visualize suas permissões.

    Business Background

    Não

    Forneça contexto para a alteração a fim de reduzir a sobrecarga de comunicação.

    Execution Method

    Sim

    Selecione um método de execução para o ticket:

    • Após aprovação, o solicitante executa a operação.

    • Executar automaticamente após aprovação.

    • Executado pelo último aprovador.

    Nota

    Os administradores podem modifique a lista de métodos de execução na seção Operations Management > Configuration Management. Para mais informações, consulte Gerenciamento de configuração.

    Affected rows

    Sim

    Estime o número de linhas afetadas. Execute uma consulta COUNT no SQL Console para obter esse valor.

    Nota

    Se houver gravação contínua de dados na tabela, conte apenas o número de linhas de dados existentes.

    SQL Statements for Change

    Sim

    Insira as instruções DML, como UPDATE, DELETE ou INSERT_SELECT.

    Nota

    Se você insira instruções DDL, estará realizando uma tarefa de alteração de esquema sem bloqueio (DDL lock-free schema change). Para mais informações, consulte Realizar uma alteração de esquema sem bloqueio usando um ticket Lockless Change.

    SQL Statements for Rollback

    Não

    Um script reverso para as instruções em SQL statements for change. O script deve ser executável.

    SQL Text

    Não

    Este parâmetro aparece apenas se você selecione Text para o parâmetro Rollback SQL. Insira as instruções SQL de rollback, que são o inverso das instruções SQL de alteração.

    Attachment

    Não

    Este parâmetro aparece apenas se você selecione Attachment para o parâmetro SQL Statements for Rollback. Clique em File para fazer upload do anexo SQL de rollback.

    Nota

    O anexo pode ser um arquivo .txt, .zip ou .sql. O tamanho máximo do arquivo é 15 MB.

    Change Stakeholder

    Não

    As partes interessadas especificadas podem visualize e colaborar no ticket. Pessoas não listadas como partes interessadas (exceto administradores e DBAs) não podem visualizá-lo.

    Attachments

    Não

    Faça upload de anexos para fornecer mais contexto para este ticket.

  4. Após envie o ticket, você pode ative a verificação de latência primário-secundário, defina um limiar e modifique as instruções SQL.

    • (Opcional) Ative a verificação de latência primário-secundário e defina um limiar. Isso evita que latências excessivas entre primário e secundário afetem os failovers da instância.

      Na seção Basic Information, clique em chunk option e defina um limiar razoável de latência primário-secundário em segundos. Se a latência primário-secundário exceder o limiar, a execução do SQL será interrompida.

      Nota

      Atualmente, este recurso está disponível apenas para bancos de dados ApsaraDB RDS for MySQL.

    • (Opcional) Modifique as instruções SQL.

      Depois de envie a solicitação, o sistema realiza automaticamente uma pré-verificação das instruções SQL. Se a pré-verificação falhar, clique em Edit SQL, edite as instruções com base no motivo da falha e tente novamente.

  5. Clique em Submit. Tickets para instâncias no modo Security Collaboration exigem aprovação com base nas regras configuradas, enquanto tickets para instâncias no modo Stable Change são aprovados automaticamente.

  6. Após a aprovação do ticket, clique em Execute Change na seção Execute da página de detalhes do ticket.

    Nota

    É possível acompanhar o progresso da aprovação na seção Approval da página de detalhes do ticket.

  7. Configure os parâmetros de execução da tarefa.

    Item de Configuração

    Descrição

    Execution Strategy

    • Running immediately: Opção padrão. A tarefa é executada imediatamente após você clique em Confirm Execution.

    • Schedule: Selecione um horário de início para a tarefa. Após clique em Confirm Execution, a tarefa será executada no horário especificado.

    Nota

    O tempo real de execução de uma tarefa agendada pode ter uma margem de erro de ±1 minuto.

    Specify End Time

    Especifique um horário de término para a tarefa. Caso a tarefa não seja concluída até o horário definido, o sistema interrompe a execução das tarefas SQL restantes. Isso evita que tarefas sejam executadas durante horários de pico, afetando as operações comerciais.

    Nota

    O horário real de término da tarefa pode ter uma margem de erro de ±1 minuto.

    Primary/Secondary Node Check

    Ativar esta verificação garante a sincronização de dados em tempo real entre as instâncias primária e standby, alta disponibilidade e recuperação rápida de falhas.

    Canary Release Type

    A política para execute instruções SQL em lotes.

    • No Canary Release: O DMS executa automaticamente todas as instruções SQL da tarefa.

    • Suspend after Executing the First SQL Statement: Após a execução bem-sucedida da primeira instrução SQL, o DMS pausa automaticamente a tarefa. Para continuar, clique em Retry. As instruções SQL restantes são então executadas de uma só vez, sem pausas adicionais.

    • Suspend after Executing a SQL Statement: A tarefa pausa automaticamente após a execução de cada instrução SQL. É necessário clique manualmente em Retry para execute a próxima instrução SQL.

  8. Clique em Confirm Execution.

    Nota

    Quando uma tarefa pausada é reiniciada, ela recomeça do início.

    Na seção Execute, visualize o status de execução da tarefa, as configurações, os detalhes e os Scheduling Logs.

Documentos relacionados

Perguntas frequentes

  • P: O recurso de alteração de dados sem bloqueio suporta operações SQL complexas?

    R: Não. Por exemplo, ele não suporta CREATE_INDEX ou operações com múltiplas tabelas, como uma instrução DELETE que inclui um JOIN. Para mais informações sobre os tipos de SQL suportados, consulte Limitações.

  • P: O Lockless Change do DMS detecta bloqueios de tabela e obstruções?

    R: Quando o DMS realiza uma alteração de dados sem bloqueio, ele divide grandes instruções SQL em lotes menores e faz uma pausa após cada lote. Isso evita a ocupação prolongada de recursos. Durante a execução, o DMS não realiza detecção prévia de bloqueios de linha. O MySQL ainda bloqueia as linhas modificadas. O impacto geral é mínimo devido aos pequenos lotes e às pausas, mas isso não garante que a tabela não será bloqueada. Para uma alteração de esquema sem bloqueio, o DMS usa uma tabela temporária para simular sua instrução DDL. Isso pré-verifica se a operação causará bloqueio ou obstrução da tabela. Se a verificação determinar que a operação bloqueará a tabela, a validação falhará e uma mensagem será exibida.

  • P: É possível ajustar a verificação de reprodução incremental para uma tarefa Lockless Change do DMS?

    R: Sim. Primeiro, na página O&M > Configuration Management, pesquise e ative o recurso "Allow adjustment of the playback data verification ratio for lockless change results".

    1. Acesse o ticket DDL correspondente no console.

    2. Na seção de execução, clique em Details.

    3. Localize o script correspondente e clique em Execution Progress.

    4. A taxa de verificação é exibida na parte inferior. Ajuste a taxa conforme necessário. A unidade é por mil (‰).