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

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

myDatabase (в восстановлении) (статус базы данных: восстановление, выключение)

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

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

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

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

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

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

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

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

SELECT databasepropertyex('nyDatabase', 'STATUS')

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

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

Запустить:

RESTORE DATABASE YourDatabase WITH RECOVERY

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

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

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

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

Комментарии (0)

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

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

Комментарии (0)
Решение

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

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

Комментарии (0)