Pytanie to zostało podesłane przez ten wcześniejszy post, a moja baza danych została zarchiwizowana do przyszłego dochodzenia, która została przywrócona w następujący sposób:
BACKUP 'BrokenDatabase' detected an error on page (1:123456) in file ’BrokenDatabase.mdf'.
Error: 3043, Severity: 16, State: 1.
W połączonym pytaniu i kopii zapasowej, którą przygotowałem do dochodzenia na stronie DBCC, DBCC CHECKDB przeszedł bezbłędnie, ale widocznie występuje uszkodzenie.
Jakiego rodzaju uszkodzenie może nastąpić, gdy CHECKDB przejdzie, ale kopia zapasowa z sumą kontrolną nie powiedzie się?
sql-server-2008
sql-server-2005
dbcc
corruption
Mark Storey-Smith
źródło
źródło
Odpowiedzi:
Poniżej znajduje się zestawienie wyników, na których czytałem. Znacznie więcej informacji znajdziesz w powiązanych blogach i dokumentach.
Po pierwsze, może się zdarzyć, że
DBCC CHECKDB
nie wykryje niespójności, jeśli wyłączysz sumę kontrolną lub weryfikację torn_page. Cytat Paula Randala w tym poście :Powyższa sytuacja może Cię dotknąć, jeśli zaktualizujesz bazę danych z SQL Server 2000 lub wcześniejszej wersji do 2005 lub późniejszej. Następnie musisz ręcznie włączyć sumy kontrolne strony za pomocą ALTER DATABASE, aby je uaktywnić. Ale wtedy pojawia się drugi akapit powyższego cytatu i może cię niepokoić.
BACKUP WITH CHECKSUM
wykryje niespójności sumy kontrolnej, ale tylko wtedy, gdy strona ma już zapisaną sumę kontrolną, podczas tworzenia kopii zapasowej. ZwykleDBCC CHECKDB
wykrywa również te błędy, więc nie jest dobrym pomysłem stosowanie funkcji BACKUP WITH CHECKSUM w celu zastąpienia DBCC CHECKDB .Teraz jest druga możliwość, aby
DBCC CHECKDB
nie pokazywać żadnych niespójności, nawet jeśli istnieją. W tym celu ponownie cytuję Paula Randala w nieporozumieniach dotyczących zepsucia: czy mogą zniknąć? :Nie mam ostatecznej odpowiedzi na twoje pytanie, ale ponieważ
DBCC CHECKDB
sprawdza tylko przydzielone strony, nie będzie wykazywał niespójności na zwolnionych stronach. Jedyną sytuacją, jaką mogę sobie teraz wyobrazić, jest to, że BACKUP tworzy kopie zapasowe również tych zwolnionych stron, pokazując potencjalne błędy sum kontrolnych, które zostały pominięteDBCC CHECKDB
.źródło