15.2.26

Разнообразные мифы о контрольных суммах страниц

Автор: Paul Randal, A SQL Server DBA myth a day: (17/30) page checksums

Несколько человек предложили некоторые мифы о контрольных суммах страниц, так что сегодня ещё одно мульти-разоблачительное представление! Ну, по крайней мере, я взволнован :-)

Я подробно описал контрольные суммы страниц в посте в блоге «How to tell if the IO subsystem is causing corruptions?»

Контрольные суммы страниц не включаются автоматически при обновлении с SQL Server 2000 или 7.0

Нет. Вы должны явно включить контрольные суммы страниц на обновлённых базах данных с помощью команды ALTER DATABASE имя_базы SET PAGE_VERIFY CHECKSUM. Базы данных, созданные в более поздних версиях, будут иметь автоматически включённые контрольные суммы страниц, если только вы не измените эту настройку в базе данных model – чего вам не следует делать.

Контрольные суммы страниц не исправляют ошибки

Нет. Контрольные суммы страниц могут обнаруживать ошибки на странице, но они не похожи на контрольные суммы на основе CRC в сетевых протоколах, которые могут исправлять одноразрядные ошибки.

Включение контрольных сумм страниц не запускает фоновую задачу по простановке контрольной суммы на каждой странице базы данных

Нет. Не существует процесса, фонового или иного, который мог бы проставить контрольную сумму на каждой странице. Это серьёзная неприятность (технический термин :-), поскольку это означает, что вы должны выполнить перестроение индексов или другие операции над всем объёмом данных, чтобы фактически проставить контрольную сумму на страницах. Этот миф идёт рука об руку со следующим ниже…

Простого чтения страниц не достаточно, чтобы проставить на них контрольную сумму (например, с помощью резервного копирования или DBCC CHECKDB)

Нет. Контрольная сумма страницы проставляется только тогда, когда страница считывается в память, изменяется, а затем записывается обратно на диск.

Когда база данных переключается с обнаружения оборванных страниц на контрольные суммы страниц, обнаружение оборванных страниц не теряется

Нет. Страницы не знают, защищены ли они с помощью обнаружения оборванных страниц, контрольной суммы страницы или вообще не защищены. Как упоминалось выше, страницы не переключаются на контрольную сумму до тех пор, пока они не будут физически изменены. Я подробно рассматривал это с примером скрипта в блоге Отключается ли "torn page detection" при включении "page checksums"?.

Контрольные суммы страниц не обнаруживают повреждения немедленно

Этот миф был предложен для разоблачения моим коллегой-магистром Гейл Шоу. Повреждённая страница не может быть обнаружена до тех пор, пока она не будет считана в память и пул буферов не проверит действительность контрольной суммы страницы.


Комментариев нет:

Отправить комментарий