Сегодня короткая статья, так как я занят работой с клиентами и сортировкой заявок на выступления для SQL Connections!
Миф №27: можно избежать необходимости запуска DBCC CHECKDB (или его аналога), используя BACKUP ... WITH CHECKSUM
ЛОЖЬ
На первый взгляд, это может показаться правдой, поскольку опция WITH CHECKSUM вызывает проверку всех существующих контрольных сумм страниц на распределённых страницах. Но это не так, и вот почему:
Во-первых, в базе данных, обновлённой с SQL Server 2000 или более ранней версии, контрольные суммы страниц должны быть включены. После их включения не все страницы в базе данных будут иметь контрольные суммы, а подсистема ввода-вывода не различает страницы с контрольными суммами и без них, когда вызывает повреждение. Поэтому если вы используете только BACKUP ... WITH CHECKSUM, то повреждение может остаться незамеченным, пока не станет слишком поздно… (Я просто оставлю фразу «пока не станет слишком поздно» висеть в воздухе… вы можете сами представить себе страшные последствия :-)
Во-вторых, вы можете создавать полную резервную копию базы данных только раз в месяц, что, на мой вкус, недостаточно часто для проверки согласованности (я рекомендую не реже одного раза в неделю). Даже с еженедельной дифференциальной резервной копией вы не проверите все распределённые страницы в базе данных — только те, которые находятся в экстентах, включённых в резервную копию (экстентах, изменившихся с момента последней полной резервной копии).
И наконец, самое коварное: полагаясь исключительно на BACKUP ... WITH CHECKSUM, вы остаётесь уязвимы для повреждений в памяти. Если дефектный чип памяти, плохо написанное расширение (XP) или другой вышедший из-под контроля процесс Windows повредит страницу файла данных SQL Server в памяти, а затем она будет записана на диск, вы получите повреждённую страницу с корректной контрольной суммой — и ничто, кроме DBCC CHECKDB, этого не обнаружит.
Суть в том, что избежать выполнения проверок согласованности невозможно. Если у вас возникли проблемы, ознакомьтесь с моей старой статьёй в блоге CHECKDB From Every Angle: Consistency Checking Options for a VLDB.
И пока мы затронули эту тему, посмотрите также эту статью: Search Engine Q&A #26: Myths around causing corruption.

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