1
resposta

RESTORE DATABASE está sendo encerrado de forma anormal

Olá,

Quando tentei executar esta instrução

RESTORE DATABASE dbVendas FROM DISK = 'C:\DATA\BACKUP\POLITICA_BACKUP_20220302.BAK' WITH FILE = 9, NORECOVERY;

Recebi esta mensagem de erro:

Mensagem 4305, Nível 16, Estado 1, Linha 14 O log neste conjunto de backup começa em LSN 81000002086400001, que é muito recente para ser aplicado ao banco de dados. Um backup de log anterior que inclua LSN 70000001223200001 pode ser restaurado. Mensagem 3013, Nível 16, Estado 1, Linha 14 RESTORE DATABASE está sendo encerrado de forma anormal.

Horário de conclusão: 2023-10-04T15:04:33.6144559-03:00

Mas usei os mesmos comandos da aula. Podem me ajudar?

Desde já, obrigado

1 resposta

Oii, Nemézio! Tudo bem?

A mensagem de erro indica que o log de backup que você está tentando aplicar é muito recente para o estado atual do seu banco de dados. Isso geralmente acontece quando você tenta restaurar um backup de log sem ter restaurado todos os backups anteriores necessários.

O erro sugere que você pode estar tentando restaurar um backup de log que foi feito após um backup que ainda não foi restaurado.

A solução para o seu problema seria garantir que todos os backups necessários foram restaurados e na ordem correta. No seu caso, você precisa encontrar e restaurar o backup de log que inclui o LSN 70000001223200001 antes de tentar restaurar o backup que está causando o erro.

Vou deixar um exemplo de código pra você poder fazer isso:

-- Restaurar o backup completo (FULL)
RESTORE DATABASE dbVendas FROM DISK = 'C:\DATA\BACKUP\POLITICA_BACKUP_20220302.BAK'
WITH FILE = 1, NORECOVERY;

-- Restaurar o backup diferencial
RESTORE DATABASE dbVendas FROM DISK = 'C:\DATA\BACKUP\POLITICA_BACKUP_20220302.BAK'
WITH FILE = 9, NORECOVERY;

-- Restaurar os backups incrementais na ordem correta
RESTORE DATABASE dbVendas FROM DISK = 'C:\DATA\BACKUP\POLITICA_BACKUP_20220302.BAK'
WITH FILE = 10, NORECOVERY;

RESTORE DATABASE dbVendas FROM DISK = 'C:\DATA\BACKUP\POLITICA_BACKUP_20220302.BAK'
WITH FILE = 11, RECOVERY; -- Este é o último backup a ser restaurado, então usamos RECOVERY em vez de NORECOVERY

E, também, é importante substituir o caminho do arquivo e os números dos arquivos, tá bem?

Se outa dúvida surgir, estamos aqui!

Abraços! :)