Добрый день, коллеги. На днях столкнулся с поврежденной базой серверной (MS SQL 2005), которая работает со сбоем, и восстановить путем тестирования-исправления невозможно (вылетает ошибка контрольной суммы). При этом база не выгружается в файл - та же ошибка. Путем многих попыток - восстановить базу так и не удавалось, единственное что помогло - восстановить путем тестирования самого SQL. Вот команды:
DBCC CHECKDB ('database', REPAIR_FAST)
DBCC CHECKDB ('database', REPAIR_REBUILD)
Если предыдущие две не помогли, тогда уже можно применять третью, но она несет за собою возможную потерю данных, и желательно применять в безнадежном случае уже.
DBCC CHECKDB ('database', REPAIR_ALLOW_DATA_LOSS)
Если команда не выполняется из-за не однопользовательского режима, тогда перейти можно по команде
alter database db-name set SINGLE_USER
Ясно что перед любыми тестами нужно сделать резервную копию (средствами SQL, если выгрузка не делается.
Данную статью написал так как потратил очень много времени на поик данных комманд и соответственно за ваши плюсы, надеюсь кому-то она поможет в тяжелый момент.