Todos os produtos
Search
Central de documentação

Data Management:Operação DML sem bloqueio

Última atualização: Oct 13, 2026

Se você precisar modificar uma grande quantidade de dados da tabela sem bloqueá-la, use o recurso Lockless Change no Data Management (DMS). Esse recurso divide uma única instrução SQL em vários lotes de execução. Isso permite que você modifique os dados da tabela sem bloqueá-la e reduz o impacto das operações DML no desempenho e no espaço do banco de dados. Este tópico descreve como executar alterações de dados sem bloqueio no DMS.

Pré-requisitos

  • Tipos de banco de dados compatíveis:

    Motor do banco de dados

    Instâncias compatíveis

    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 obter mais informações, consulte Visualize o modo de controle de uma instância.

Limitações

Apenas as instruções UPDATE, DELETE e INSERT...SELECT são compatíveis.

UPDATE e DELETE

Restrição

Detalhes

Escopo da tabela

Somente uma única tabela

Cláusula WHERE

Obrigatória. Atualize ou exclua todas as linhas usando WHERE 1=1

Subconsultas

Sem suporte

Cláusula LIMIT

Não compatível: o uso de LIMIT para paginação manual força uma varredura completa da tabela, o que causa o bloqueio que este recurso foi projetado para evitar

INSERT...SELECT

Restrição

Detalhes

Escopo do SELECT

Somente uma única tabela

Cláusula WHERE

Obrigatória na cláusula SELECT. Selecione todas as linhas usando WHERE 1=1

Cláusulas não permitidas

LIMIT, ORDER BY e GROUP BY não são compatíveis 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 no ícone function no canto superior esquerdo. No painel de navegação que aparece, escolha All Features > Database Development > Data Change > Lockless Change.

  3. Configure os parâmetros do ticket do Lockless Change e clique em Submit. A tabela a seguir descreve alguns 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, configure 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ê precisa ter permissões para alterar dados no banco de dados de destino. Para obter mais informações, consulte Visualize suas permissões.

    Business Background

    Não

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

    Execution Method

    Sim

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

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

    • Execução automática após a aprovação.

    • Execução pelo último aprovador.

    Nota

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

    Affected rows

    Sim

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

    Nota

    Se os dados forem gravados continuamente 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ê inserir instruções DDL, estará executando uma tarefa de alteração de schema sem bloqueio. Para obter mais informações, consulte Perform a lock-free schema change by using a Lockless Change ticket.

    SQL Statements for Rollback

    Não

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

    SQL Text

    Não

    Este parâmetro aparece apenas caso selecione Text para o parâmetro Rollback SQL. Insira as instruções SQL de rollback, que revertem as instruções SQL de alteração.

    Attachment

    Não

    Este parâmetro aparece apenas caso selecione Attachment para o parâmetro SQL Statements for Rollback. Clique em File para carregar o anexo SQL de rollback.

    Nota

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

    Change Stakeholder

    Não

    As partes interessadas especificadas podem visualizar e colaborar no ticket. Os não participantes (exceto administradores e DBAs) não podem visualizá-lo.

    Attachments

    Não

    Carregue anexos para fornecer mais contexto a este ticket.

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

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

      Na seção Basic Information, clique em chunk option e defina um limiar adequado de latência entre primário e secundário em segundos. Se a latência entre primário e secundário exceder o limiar, o sistema interrompe a execução do SQL.

      Nota

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

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

      Após o envio do ticket, o sistema valida previamente as 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. Os tickets para instâncias no modo Security Collaboration exigem aprovação com base nas regras configuradas, enquanto os 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

    Visualize 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: a opção padrão. A tarefa é executada imediatamente após clicar em Confirm Execution.

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

    Nota

    O horário de execução real 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. Se a tarefa não for concluída até o horário de término especificado, o sistema interrompe a execução das instruções SQL restantes. Isso evita que as tarefas sejam executadas durante os horários de pico e afetem as operações do negócio.

    Nota

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

    Primary/Secondary Node Check

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

    Canary Release Type

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

    • No Canary Release: o DMS executa automaticamente todas as instruções SQL na 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 mais pausas.

    • Suspend after Executing a SQL Statement: a tarefa é pausada automaticamente após a execução de cada instrução SQL. Clique manualmente em Retry para executar 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 da tarefa, os detalhes e os Scheduling Logs.

Documentos relacionados

FAQ

  • P: O recurso de alteração de dados sem bloqueio é compatível com operações SQL complexas?

    R: Não. Por exemplo, não é compatível com CREATE_INDEX ou operações de várias tabelas, como uma instrução DELETE que inclui um JOIN. Para obter mais informações sobre os tipos de SQL compatíveis, consulte Limitations.

  • P: O Lockless Change do DMS detecta bloqueios de tabela e bloqueios?

    R: Quando o DMS executa 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 que os recursos fiquem ocupados por muito tempo. Durante a execução, o DMS não detecta bloqueios de linha antecipadamente. O MySQL ainda bloqueia as linhas modificadas. O impacto geral é mínimo devido aos pequenos lotes e pausas, mas isso não garante que a tabela não será bloqueada. Para uma alteração de schema sem bloqueio, o DMS usa uma tabela temporária para simular sua instrução DDL. Isso valida previamente se a operação causará bloqueio de tabela ou bloqueio. Se a validação determinar que a operação bloqueará a tabela, a validação falhará e uma mensagem será exibida.

  • P: A taxa de verificação de reprodução incremental para uma tarefa de Lockless Change do DMS pode ser ajustada?

    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. Encontre 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 (‰).