Я пытаюсь восстановить резервную копию базы данных размером 25 ГБ, сделанную с машины Windows 2003 / SQL 2005, на машину Windows 2008 / SQL 2008 в облаке Amazon EC2, используя файл .bak и SQL Management Studio. SQL Management Studio сообщает, что восстановление достигло 100%, а затем просто зависает на неопределенный срок (более 24 часов) с использованием большого количества ресурсов ЦП, пока я не перезапущу службу SQL Server. После перезапуска SQL снова использует большую активность ЦП в течение неопределенного времени, но БД никогда не подключается к сети.
Вот некоторые подробности: - Я создал два тома EBS, один для DATA и один для LOGS, и я установил каталоги по умолчанию в SQL Server в каталог \ DATA и \ LOG на этих соответствующих томах. (Интересно, может ли проблема быть связана с этим, но БД слишком велика для восстановления на корневом диске.) - Я предоставил группе пользователей SQL Server полный доступ к этим каталогам. - Сервер может создать новую пустую тестовую БД в этих каталогах и может создавать резервные копии и восстанавливать тестовую БД. - Я пробовал как восстановить файл .bak, так и прикрепить его непосредственно к копиям исходных файлов .mdf / .ldf, и результат был одинаковым в обоих случаях. - Восстановление .bak и присоединение .mdf / .ldf происходят с / на тома EBS. - Я также пробовал описанное выше с помощью сценария SQL и «С ВОССТАНОВЛЕНИЕМ», без разницы в результате, только с меньшим количеством пользовательского интерфейса.
- Резервная копия содержит два полнотекстовых индекса. - Мне приходится использовать "С ПЕРЕМЕЩЕНИЕМ" для большинства файлов в резервной копии. - Нет ничего плохого в резервных копиях или файлах .mdf / .ldf, так как это прекрасно работает на машине Windows 2003 / SQL 2005 в Amazon EC2, но не на Windows 2008 / SQL 2008.
- БД НЕ помечена как «Восстановление» в SQL Management Studio - она просто указана как обычная база данных, но выдает ошибки, когда я пытаюсь что-либо с ней сделать (развернуть дерево обозревателя объектов, просмотреть свойства и т. Д.)
Любые идеи?
База данных находится в процессе обновления с SQL 2005 до SQL 2008, когда вы ее убиваете. Проверьте ERRORLOG в SQL Server, и вы должны увидеть, что восстановление базы данных завершено и что база данных обновляется.
Этот процесс обычно выполняется очень быстро, но в зависимости от базы данных он может занять некоторое время, особенно если у вас много ожидающих транзакций в базе данных, которые могут быть откатаны вперед или назад перед обновлением базы данных.