Cette question a été posée par ce post précédent et le fait d'avoir une base de données classée pour une enquête future qui a été restaurée après:
BACKUP 'BrokenDatabase' detected an error on page (1:123456) in file ’BrokenDatabase.mdf'.
Error: 3043, Severity: 16, State: 1.
Dans la question liée et la sauvegarde que j'ai préparée pour les investigations de DBCC PAGE, DBCC CHECKDB est passé sans erreur mais la corruption est évidemment présente.
Quels types de corruption peuvent se produire par lesquels CHECKDB passera mais une SAUVEGARDE AVEC CHECKSUM échouera?
sql-server-2008
sql-server-2005
dbcc
corruption
Mark Storey-Smith
la source
la source
Réponses:
Ce qui suit est une compilation des résultats que j'ai lus. Vous trouverez beaucoup plus d'informations dans les blogs et documents liés.
Tout d'abord, il peut arriver que
DBCC CHECKDB
les incohérences ne soient pas détectées si vous désactivez la vérification de la somme de contrôle ou de torn_page. Une citation de Paul Randal dans ce post :La situation ci-dessus peut vous toucher si vous avez mis à niveau une base de données de SQL Server 2000 ou antérieur à 2005 ou ultérieur. Vous devez ensuite activer manuellement les sommes de contrôle de page avec ALTER DATABASE pour les activer. Mais alors le 2ème paragraphe de la citation ci-dessus entre en jeu et pourrait vous déranger.
BACKUP WITH CHECKSUM
détectera les incohérences de la somme de contrôle, mais uniquement si la page avait déjà une somme de contrôle écrite lors de la sauvegarde. DétecteDBCC CHECKDB
également normalement ces erreurs, il n'est donc pas judicieux d'utiliser BACKUP WITH CHECKSUM pour remplacer DBCC CHECKDB .Maintenant, il y a une deuxième possibilité pour
DBCC CHECKDB
ne pas montrer d'incohérences, même s'il y en a. Pour cela, je cite à nouveau Paul Randal dans les idées fausses sur les corruptions: peuvent-elles disparaître? :Je n'ai pas de réponse définitive à votre question, mais comme
DBCC CHECKDB
ne vérifie que les pages allouées, il ne montrera pas d'incohérences dans les pages désallouées. La seule situation que je peux imaginer maintenant est que BACKUP sauvegarde également les pages désallouées montrant des erreurs de somme de contrôle potentielles qui ont été ignoréesDBCC CHECKDB
.la source