Форум системных администраторов

IT => Software => СУБД => Тема начата: Triangle от 03 Апреля 2018, 12:13:13

Название: Ошибка в базе sql
Отправлено: Triangle от 03 Апреля 2018, 12:13:13
Что делал, таскал файлы базы между разными дисками, все остальные на ура, одна выдала мне козью морду

DBCC CHECKDB (N'bp', REPAIR_REBUILD)WITH NO_INFOMSGS

Сообщение 7985, уровень 16, состояние 2, строка 1
Предварительная проверка системных таблиц: объект с идентификатором 3. Не удалось прочитать страницу (1:323504) и заблокировать ее кратковременной блокировкой типа SH. Инструкция проверки прервана из-за неустранимой ошибки.
Сообщение 5256, уровень 16, состояние 1, строка 1
Ошибка таблицы: идентификатор единицы размещения 0, страница (1:323504) содержит неправильный идентификатор страницы в ее заголовке. PageId в заголовке страницы равен (0:0).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных "bp".

Ну ладно, хрен с ним, давайте восстановимся из бэкапа.

Действие Восстановить завершилось неудачно для объекта "Сервер" "MSK-01-DB-05".  (Microsoft.SqlServer.SmoExtended)
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
Ошибка при попытке выборки логической страницы (1:345360) в базе данных 10. Она принадлежит единице распределения 0, а не 281474979397632. (Microsoft SQL Server, ошибка: 605)
Название: Ошибка в базе sql
Отправлено: airdwarf от 03 Апреля 2018, 12:42:27
А потому что бэкапы нужно тестировать.

DBCC CHECKDB (N'bp', REPAIR_ALLOW_DATA_LOSS)
Название: Ошибка в базе sql
Отправлено: Triangle от 03 Апреля 2018, 12:57:33


Сообщение 7985, уровень 16, состояние 2, строка 1
Предварительная проверка системных таблиц: объект с идентификатором 3. Не удалось прочитать страницу (1:323504) и заблокировать ее кратковременной блокировкой типа SH. Инструкция проверки прервана из-за неустранимой ошибки.
Результаты DBCC для "bp".
Сообщение 5233, уровень 16, состояние 5, строка 1
Ошибка таблицы: идентификатор единицы размещения 0, страница (1:323504). Выполнить тест (m_headerVersion == HEADER_7_0) не удалось. Значения равны 0 и 1.
Сообщение 5233, уровень 16, состояние 6, строка 1
Ошибка таблицы: идентификатор единицы размещения 0, страница (1:323504). Выполнить тест ((m_type >= DATA_PAGE && m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level == BASIC_HEADER)) не удалось. Значения равны 0 и 0.
Сообщение 5233, уровень 16, состояние 7, строка 1
Ошибка таблицы: идентификатор единицы размещения 0, страница (1:323504). Выполнить тест (m_freeData >= PageHeaderOverhead () && m_freeData <= (UINT)PAGESIZE - m_slotCnt * sizeof (Slot)) не удалось. Значения равны 0 и 8192.
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в базе данных "bp".


Updated: 03 April 2018, 13:10:38

Вобщем забили, откатились на предыдущий бэкап.


Updated: 03 April 2018, 13:26:40

бэкапы нужно тестировать.
  :pardon: было бы кому этим заниматься, Ну и это разовый случай с невосстановлением пока что. До того всё ОК неоднократно.
Название: Ошибка в базе sql
Отправлено: airdwarf от 03 Апреля 2018, 14:18:16

бэкапы нужно тестировать.
  :pardon: было бы кому этим заниматься, Ну и это разовый случай с невосстановлением пока что. До того всё ОК неоднократно.


 :facepalm2:

Может, они и делаются вручную?
Название: Ошибка в базе sql
Отправлено: Triangle от 03 Апреля 2018, 14:49:08
Делаются они как бы встроенными средствами, ты имеешь в виду что делать restore verifyonly делать ещё?
Название: Ошибка в базе sql
Отправлено: airdwarf от 04 Апреля 2018, 22:13:55
Именно.