SQL Server показывает базу данных в восстановлении

23

Сегодня, после сбоя питания, одна база данных (с восстановлением: полное) показывает «В восстановлении» в SSMS. Так:

myDatabase (в процессе восстановления) (состояние базы данных: восстановление, завершение работы)

После завершения «процесса восстановления» база данных отображает имя myDatabase без «(в процессе восстановления)». Я думал, что проблема была решена, но это не так.

Когда я запустил приложение, которое использует эту базу данных, дополнительный текст «(В процессе восстановления)» снова появляется рядом с именем моей базы данных.

Я подождал, пока «процесс восстановления» закончится, а затем перевел базу данных в автономный режим и снова включил ее.

Я перезапустил сервер, перезагрузил компьютер, и когда мое приложение работало, снова появляется дополнительный текст. В журналах SQL Server сообщение «Запуск базы данных« myDatabase »» появляется несколько раз. Кажется, что база данных работает, потому что я могу вставить данные, но состояние показывает, что что-то происходит.

Лог сервера не показывает ничего интересного. Единственное ненормальное, что у меня есть 30 записей «Запуск базы данных« myDatabase »».

Я знаю, что при запуске сервера каждая база данных проходит восстановление, прежде чем она будет готова к использованию. Но в моем случае база данных подключается, а затем показывает «myDatabase (в процессе восстановления)». Если я закрываю приложение, база данных переходит в состояние: нормальное. Это сводит меня с ума.

Я даже установил новый экземпляр SQL Server и поместил в него старую базу данных «myDatabase». Проблема все еще происходит.

Когда я запускаю этот запрос:

SELECT databasepropertyex('nyDatabase', 'STATUS')

Это показывает восстановление, онлайн, подозреваемый и обратно в онлайн, а затем восстановление и так далее.

Andres
источник

Ответы:

2

Сообщество вики-ответа изначально оставлено в виде правки на вопрос его автора:

Проблема заключалась в том, что свойство базы данных AutoCloseбыло установлено на.

Решением было установить AutoCloseзначение false.

user126897
источник
16

Я не уверен, поможет ли это решить проблему, но вы можете дать ему шанс.

Бег:

RESTORE DATABASE YourDatabase WITH RECOVERY

Посмотрите, выводит ли вышеприведенное из базы данных режим восстановления. Если это не так, то проблема может быть в чем-то другом.

Можете ли вы попробовать приведенную ниже команду и посмотреть, не повреждена ли база данных?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

Если он обнаружит повреждение, вы можете восстановить базу данных, используя DBCC CHECKDB

РК Куппала
источник
6

Всякий раз, когда вы подключаете базу данных к сети, она проходит процесс восстановления. Я немного смущен вашей формулировкой проблемы. Видите ли вы, что база данных восстанавливается в любое время, кроме случаев, когда база данных переводится в автономный режим (либо из-за исходного сбоя питания, либо из-за того, что вы перевели ее в автономный режим, а затем снова подключили к сети)? Если это так, база данных отключается по какой-то другой причине. Лучше всего проверить журналы сервера SQL, чтобы увидеть, что происходит.

Вам также следует проверить журнал событий Windows на наличие ошибок на диске. База данных не должна запускаться и восстанавливаться во время нормальной работы.

Бен Тул
источник