Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sintomas

Assuma que utiliza o grupo AlwaysOn Availability numa base de dados Microsoft SQL Server 2012 ou SQL Server 2014, e existe uma grande transação ativa aberta e requer um espaço adicional de registo. Quando o ficheiro de registo não pode crescer por uma das seguintes razões, a transação falha.

  • Falta de espaço adicional de arquivo

  • O ficheiro de log está configurado para não crescer

  • O ficheiro de registo atingiu o seu tamanho máximo configurado

Além disso, recebe a seguinte mensagem de erro:

Erro: 9002, Severidade: 17, Estado: 9.O registo de transações da base de dados "<nome da base de dados>" é completo devido a "LOG_BACKUP".

Depois de executar uma cópia de segurança de registo, recebe outra mensagem de erro 9002:

Erro: 9002, Severidade: 17, Estado: 9.O registo de transações da base de dados '<nome de base de dados>' é completo devido a "ATIVE_TRANSACTION".

Depois de outra cópia de segurança de registo, recebe então outra mensagem de erro 9002 seguida de uma mensagem de erro 5901:

Erro: 9002, Severidade: 17, Estado: 9.O registo de transações da base de dados '<nome da base de dados>' é completo devido a "AVAILABILITY_REPLICA".

Não foi possível escrever um registo de ponto de verificação na base de dados <nome da base de dados> porque o registo está fora do espaço. Contacte o administrador da base de dados para truncar o registo ou alocar mais espaço aos ficheiros de registo de bases de dados. Erro: 5901, Severidade: 16, Estado: 1.1 ou mais unidades de recuperação pertencentes à base de dados "<nome de base de dados>" não geraram um ponto de verificação. Isto é normalmente causado pela falta de recursos do sistema, como o disco ou a memória, ou em alguns casos devido à corrupção na base de dados. Examine as entradas anteriores no registo de erros para obter informações mais detalhadas sobre esta falha.

Quando o controlo de verificação subsequente ou as cópias de segurança de registo forem então tomadas durante a reversão da transação, poderá receber a seguinte mensagem de erro:

Msg 3052, Nível 16, Estado 1, Linha 4BACKUP LOG não foi capaz de registar atualizações para base de dados "<nome da base de dados>". As cópias de segurança subsequentes serão necessárias para adiantar o ponto de backup de '<LSN id 1>' para "<LSN id 2>" depois de o espaço de registo ser disponibilizado para os registar.

Quando recebe estas mensagens, já não pode submeter novas transações à base de dados, não podendo cultivar o ficheiro de registo ou adicionar outro ficheiro de registo.

Resolução

O problema foi corrigido pela primeira vez na seguinte atualização cumulativa do SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Recomendamos que descarregue e instale as últimas atualizações cumulativas para o SQL Server:

Solução

Pode utilizar a seguinte solução para truncar os registos e retomar a atividade.

  1. Verifique cada réplica secundária para verificar se a réplica secundária last_hardened_lsn (ver sys.dm_hadr_database_replica_states)corresponde à réplica primária last_hardened_lsn. Pode fazê-lo executando a seguinte consulta que está ligada à primeira instância de réplica

    SELECT ags.name as AGGroupName,    ar.replica_server_name as InstanceName,    hars.role_desc,    db_name(drs.database_id)as DBName,    drs.last_hardened_lsn, drs.log_send_queue_size,    drs.synchronization_state_desc as SyncState,    ar.availability_mode_desc as SyncMode,    CASE drs.is_local WHEN 1 THEN drs.database_id ELSE NULL END as database_id    FROM sys.dm_hadr_database_replica_states drs    LEFT JOIN sys.availability_replicas ar ON drs.replica_id = ar.replica_id    LEFT JOIN sys.availability_groups ags  ON ar.group_id = ags.group_id    LEFT JOIN sys.dm_hadr_availability_replica_states hars        ON ar.group_id = hars.group_id and ar.replica_id = hars.replica_id      WHERE db_name(drs.database_id) = '<database name>'
  2. Na réplica primária

    • Remova a base de dados do grupo de disponibilidade.

    • Voltar a adicionar a base de dados ao grupo de disponibilidade.

  3. Em cada réplica secundária

    • Voltar a adicionar a base de dados ao grupo de disponibilidade.

Ao remover a base de dados do grupo de disponibilidade, truncará imediatamente os seus registos e libertará o espaço de registo. Se a last_hardened_lsn em cada réplica secundária for idêntica à réplica primária, e não forem tomadas cópias de segurança de registo durante o tempo de remoção da base de dados do Grupo Availability e de readição da base de dados em cada secundário, a réplica secundária será adicionada com sucesso sem quaisquer erros ou tendo de restaurar as cópias de segurança de registo no secundário. Se uma réplica secundária não estiver em funcionamento com a réplica primária e tiver de remover a base de dados do grupo de disponibilidade antes que o secundário possa recuperar, essa réplica secundária pode ter de ter cópias de segurança de registo restauradas para a recuperar antes de a adicionar novamente ao grupo de disponibilidade, ou deixar cair a base de dados na réplica secundária e re-seed-la com uma base de dados completa e de registo de transações.

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×