Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Загадка перестройки индексов  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
Всем здравствуйте,
Есть боевой сервер
Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64) 
	Sep 16 2010 19:43:16 
	Copyright (c) 1988-2008 Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2)

и тестовый сервер(точнее не сервер, а просто большой компьютер)
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 
	Jun 17 2011 00:54:03 
	Copyright (c) Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2)


На обеих серверах создан план обслуживания по перестройке индексов. С боевого сервера на тестовый копируется полная резервная копия базы и восстанавливается (из SSMS "restore to database from file"), затем для свежевосстановленной базы запускается план обслуживания, который валится с ошибкой и рекомендует выполнить "DBCC CHECKDB", выполняю
use master
go
alter database alfa set single_user with rollback immediate
go
dbcc checkdb('alfa',repair_allow_data_loss)
go
alter database alfa set multi_user
go

и получаю вот такое:
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 729105688, index ID 1, partition ID 72057601513553920, alloc unit ID 72057601638334464 (type In-row data). Page (1:1524532) is missing a reference from previous page (1:1524531). Possible chain linkage problem.
        The error has been repaired.


Точно такой же план обслуживания на боевом сервере выполняется без проблем.
Вопрос: это у меня потихоньку умирает тестовый сервер или пора побеспокоиться о боевой БД и сделать ей
DBCC CHECKDB

?
С уважением, Londinium
1 мар 12, 00:44    [12173952]     Ответить | Цитировать Сообщить модератору
 Re: Загадка перестройки индексов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Или что-то с бэкапами, или с тестовым сервером. Бэкап и рестор делать как минимум с опцией checksum, целостность бэкапа проверить на другом железе. Если и там так же фигня - битый бэкап. Если нет - битый тестовый сервер.

И, да, не круто ли сразу с repair_allow_data_loss? Он вам често сделает data_loss, а вы даже не узнаете, каких именно data.

Сообщение было отредактировано: 1 мар 12, 01:00
1 мар 12, 01:00    [12173972]     Ответить | Цитировать Сообщить модератору
 Re: Загадка перестройки индексов  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
автор
И, да, не круто ли сразу с repair_allow_data_loss? Он вам често сделает data_loss, а вы даже не узнаете, каких именно data.

Согласен, круто. Но тестовый сервер предназначен именно для проверки целостности бэкапов и разработки на основе этих бэкапов.
1 мар 12, 01:09    [12173987]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить