Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Como reduzir o log de transações do ApsaraDB RDS for SQL Server

Última atualização: Sep 17, 2026

Este tópico explica como reduzir o log de transações de uma instância do ApsaraDB RDS for SQL Server com espaço de log suficiente ou insuficiente.

Nota
  • Antes de executar operações de risco, como modificar uma instância ou dados, verifique se a instância possui recursos robustos de recuperação de desastres e tolerância a falhas para proteger seus dados.

  • Ao modificar configurações ou dados de uma instância, como ECS ou ApsaraDB RDS, crie um snapshot ou habilite um recurso como backup de log para a instância do ApsaraDB RDS.

  • Caso tenha concedido permissões ou enviado informações de segurança, como nomes de usuário e senhas, na plataforma Alibaba Cloud, altere-as imediatamente.

Espaço suficiente no log

Se houver espaço suficiente no log, use o recurso Backup and shrink transaction logs no console do ApsaraDB RDS. Esse recurso executa automaticamente um backup e uma redução de log, otimizando o tamanho do arquivo de log de transações.

Importante
  • Durante a redução do log de transações, o sistema executa automaticamente um backup de log. Isso arquiva o log de transações e aumenta a probabilidade de limpeza bem-sucedida do log local.

  • Antes de reduzir o log de transações, verifique o status de espera de reutilização de log do banco de dados.

    • Se o status for NOTHING, reduza o log. O tamanho passível de redução depende do tamanho do arquivo de log virtual (VLF) reutilizável no final do log de transações. Caso uma transação ativa impeça que o VLF no final do log seja definido como reutilizável, execute outro log backup. Em seguida, aguarde a conclusão da transação ativa e verifique novamente o status de espera de reutilização até que ele se torne NOTHING.

    • Se o status for LOG_BACKUP, a operação de redução poderá falhar devido a uma transação ativa. Nesse caso, execute a operação de redução várias vezes até obter êxito.

    Acesse a página Database Management > View Details para view the log file reuse status (log_reuse_wait_desc).

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde reside a instância RDS. Localize a instância RDS e clique em ID da instância.

  2. No painel de navegação à esquerda, clique em Backup and Restoration.

  3. Clique em Backup and shrink transaction logs e depois em OK.

  4. Após a conclusão da operação de redução, acesse a página Monitoring and alerts da instância para visualizar o uso mais recente do espaço de log.

    Na aba Standard Monitoring, localize o gráfico Instance Space e visualize a métrica sqlserver.log_size para confirmar a redução do espaço de log.

Perguntas frequentes

  • P: O que fazer se o botão Backup and shrink transaction logs não responder?

  • R: Geralmente, esse problema ocorre pelos seguintes motivos:

    • O status de espera de reutilização de log não atende às condições de redução: Se o status log_reuse_wait_desc do banco de dados não for NOTHING, os arquivos de log virtuais (VLFs) no arquivo de log não poderão ser marcados como reutilizáveis, impedindo a operação de redução. Acesse a página Database Management > View Details para view the log file reuse status (log_reuse_wait_desc). Tente realizar a operação novamente após o status se tornar NOTHING.

    • Uma transação ativa impede a liberação do VLF no final do log: Mesmo que o status log_reuse_wait_desc seja NOTHING, a operação de redução não liberará o espaço se uma transação ativa estiver usando o VLF no final do log. Aguarde a conclusão da transação ativa, execute um log backup novamente e clique em Backup and shrink transaction logs.

Espaço insuficiente no log

Se o servidor de banco de dados relatar que o "log de transações está cheio", não será possível reduzir o log de transações pelo console. Execute instruções SQL para realizar essa tarefa. A redução de um log de transações exige algum espaço livre no log. Quando o log está cheio, a única opção é quebrar a cadeia de logs executando comandos.

Antes de começar

  • As operações a seguir destinam-se apenas a situações de emergência. Primeiro, expand the disk space.

  • Como regra geral, não altere o modelo de recuperação do banco de dados para SIMPLE. Essa ação quebra a cadeia de backups do ApsaraDB RDS e causa falha em todas as tarefas subsequentes de restauração point-in-time.

  • Para instâncias da edição High-availability (HA), desabilite o espelhamento de banco de dados antes de alterar o modelo de recuperação do banco de dados.

Aviso

Ao executar essas operações em uma emergência, você reconhece e aceita os riscos associados. Prossiga com cautela.

Procedimento

Instâncias da edição Basic

-- Set the database recovery model to SIMPLE to break the database log chain.
ALTER DATABASE [DatabaseName] SET RECOVERY SIMPLE;

Instâncias da edição High-availability (HA)

Nas instâncias da edição High-availability (HA), o espelhamento de banco de dados está ativo, bloqueando operações diretas de ALTER DATABASE. Siga as etapas abaixo:

-- Disable database mirroring first.
ALTER DATABASE [DatabaseName] SET PARTNER OFF;
GO
-- Set the database recovery model to SIMPLE to break the database log chain.
ALTER DATABASE [DatabaseName] SET RECOVERY SIMPLE;
-- Database mirroring is restored automatically. No manual setup is required.

Embora o sistema redefina imediatamente o modelo de recuperação para FULL e não o altere permanentemente para SIMPLE, o comando ainda quebra a cadeia de logs com êxito. O erro resultante não afeta esse resultado e pode ser ignorado.

Msg 50000, Level 16, State 1, Procedure ******, Line 46
Login User [Test11] can't change database [TestDb] recovery model.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.

Solução de problemas

  • P: Após executar o comando ALTER DATABASE [TestDb] SET RECOVERY SIMPLE, aparece uma mensagem de erro semelhante à seguinte. Como corrigir isso?

    Msg 1468, Level 16, State 2, Line 1
    The operation cannot be performed on database "zhttestdb" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.
  • R: As instâncias da edição High-availability (HA) do ApsaraDB RDS for SQL Server usam espelhamento de banco de dados, proibindo operações ALTER no modelo de recuperação. Siga as instruções em Procedure para resolver o problema.

Referências