quinta-feira, 12 de setembro de 2013

Dica de SQL - Identificar se banco está em Full Recovery Model























Quando alteramos o recovery model de uma base para full na verdade a base não passa a trabalhar imediatamente com o recovery model full. Ela estará utilizando um recovery model pseudo-simple até que um backup full seja realizado e a base possa relamente trabalhar com o recovery model full. 

Como identificar se uma base está trabalhando com recovery model full ou pseudo-simple ? 

Nem sempre saber a data do último backup é suficiente, você precisa saber se o último backup foi realizado após a base ter sido mudada para recovery model full. O simples ato de mudar o recovery model para simple e depois para full - prática se tornando conhecida para limpar arquivos de log - inutiliza a sequencia de backups e faz a base trabalhar no recovery model pseudo-simple até que o próximo backup full seja realizado. 

Para identificar com maior precisão se um banco está trabalhando com recovery model full ou pseudo simple podemos utilizar a seguinte query : 

select name,last_log_backup_lsn from 
sys.databases a, sys.database_recovery_status b 
where a.database_id=b.database_id 

Com essa query basta examinarmos o campo last_log_backup_lsn. Se estiver nulo, o database não está em full, podendo estar no pseudo-simple recovery model. Se não estiver nulo, a sequencia de backups de logs está ok, o database está em full. 

Nenhum comentário:

Postar um comentário