Вот такая ситуация:
Получил полную резервную копию (файл .bak) базы данных SQL 2008 с разделами. Размер файла .bak составляет 100 ГБ.
Мне нужно восстановить эту базу данных на другом сервере в новую базу данных. Команда такая:
Restore Database [newname] FROM DISK= N'D:\mydatabase.bak' WITH FILE = 1
MOVE 'mydatabasename' TO 'C:\mydatabase.mdf'
MOVE 'Partition1' TO 'C:\`mydatabase_1.ndf'etc..
STATS = 1
После обработки 52 процентов я получаю эту ошибку:
Msg 3183, Level 16, State 2, Line 1
RESTORE detected an error on page (8481:555819297) in database "dbname" as read from the backup set.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Прежде чем появятся все предложения по умолчанию, я уже сделал следующее:
Что я могу сделать, чтобы это исправить? Как я могу решить настоящую проблему?
Спасибо за любые предложения.
Также спрашивали о stackoverflow, но они предложили спросить его на serverfault: Ссылка на stackoverflow
Необычно получить ошибку чтения в файле, который невозможно воспроизвести на другом оборудовании, за исключением случаев, когда основной диск / система хранения неисправного сервера не имеет проблем.
Если вы дважды запускали восстановление на сервере, я предполагаю, что оба раза оно не удалось. Ошибка возникла на той же странице? В противном случае я бы заподозрил аппаратную проблему с диском, и я бы посмотрел на это с помощью монитора производительности, чтобы посмотреть физические значения секунд / передачи для диска. Если ошибка произошла на той же странице, я бы заподозрил этот файл. Копия на вашем локальном компьютере сделана из сбойного на сервере или из другого источника? Возможно, файл .bak был поврежден при его копировании из этого источника на сервер.
Если возможно, лучше получить еще одну копию файла резервной копии. Если это не вариант, я бы запустил checkdb для базы данных, которую вам удалось (по-видимому) восстановить чисто. Если все в порядке, я бы подумал об отсоединении базы данных от моего локального компьютера, копировании всех данных и файлов журнала на сервер и повторном подключении базы данных. А затем делаем еще одну checkdb.