Добрый день! Столкнулась с такой проблемой: одна из баз (повезло, что она тестовая) ночью перешла в режим Recovery Pending. Причины такой трансформации мне пока что не понятны. Однако все мои попытки вывести из этого состояния ее завершаются неудачно, поскольку результат sql-запросов возвращает мне текст ошибки, будто файл mdf и файл логов не найдены и указывает к ним путь совершенно не тот, по которому база реально расположена. Файл базы и ее логов физически присутствует, но при выполнении действий по восстановлению этой базы, она ищется по другому пути. Свойства этой базы посмотреть не возможно, т.к. не активно это меню((
Подскажите, пожалуйста, как можно выйти из данной ситуации? Хочется разобраться, чтобы в дальнейшем не допустить такого с боевыми базами.
(3) смысл проблемы не в этом, все эти команды выполнены. База перешла в аварийный режим, а дальше выдает ошибки вот такие:
Msg 5120, Level 16, State 101, Line 1
Unable to open the physical file "E:\DB no active\temp6.mdf". Operating system error 2: "2(The system cannot find the file specified.)".
Msg 945, Level 14, State 2, Line 1
Database 'temp6' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
Msg 5120, Level 16, State 101, Line 1
Unable to open the physical file "E:\DB no active\temp6.mdf". Operating system error 2: "2(The system cannot find the file specified.)".
думаю, что проблема в том, что все эти запросы по какой-то причине ищут файл базы и логов не в той папке и даже не на том диске (физически база действительно находится в другом месте, а не на диске Е, как указано в тексте ошибки).
Как указать верный путь к базе?
(4) Первым делом, предоставьте права на доступ к файлам и папке E:\DB no active\ пользователю NT SERVICE\MSSQLSERVER или тому, под кем запущена служба MSSQL. Если не уверены, предоставьте права для Everyone.
(17)
Автор же утверждает , что сами файлы по другому пути, хотя по какому, не говорит.
А так да, можно было бы и по пути, который скуль предполагает хранение их туды поместить, для проверки.
Один хрен, системное хранение не даст поменять просто так с-ходу.
21.
G_115047268181418619099
19.05.22 07:31 Сейчас в теме
Состояние ожидания восстановления: Если SQL Server знает, что восстановление базы данных должно быть запущено, но что-то препятствует его запуску, сервер помечает базу данных в состоянии 'Recovery Pending'. Это состояние отличается от состояния SUSPECT, поскольку нельзя сказать, что восстановление не удастся - оно просто еще не началось.
Причины состояния ожидания восстановления в SQL Server
Некоторые из причин, вызывающих такую проблему, следующие:
База данных была закрыта неправильно, и во время закрытия активна хотя бы одна незавершенная транзакция, что привело к удалению активного файла журнала транзакций.
Пользователь пытался переместить файлы журнала на новый диск, чтобы решить проблемы с производительностью сервера, но в итоге повредил файлы журнала.
Восстановление базы данных не может быть инициировано из-за недостаточного объема памяти или дискового пространства.
(21), благодарю за дельный ответ, действительно, база ушла в такое состояние после моих экспериментов с журналом регистрации, благо база тестовая.
Обязательно посмотрю, почитаю статьи по вашим ссылкам, как только появится на это время, сейчас это вопрос уже не горящий, но все равно интересно самой разобраться с этой проблемой, чтобы иметь представление на будущее, как это решается.
Был в такой ситуации - при замене оборудования, не подключил диск с ldf. Когда сервер загрузился, SQL, не найдя ldf баз, создала их рядом с файлами mdf. При этом все такие базы ушли в Recovery Pending.
Помогла остановка SQL и копирование новых ldf по старым путям.
После этого все базы были в штатном режиме.