На сервере 1С находится несколько БД на базе MSSQL 2019. Нужно восстановить одну из них из резервной копии, сделанной средствами MSSQL (файл .bak), не трогая остальные. Возможно ли это?
---
Испробованные способы:
1) Остановить сервис "1C:Enterprise 8.3 Server Agent (x86-64)", восстановить БД через MSSQL Management Studio. Это проходит, но на время восстановления ложится весь сервер 1С.
2) Восстановить БД через MSSQL Management Studio. Восстановление не проходит с ошибкой "Error - Exclusive access could not be obtained because the database is in use".
3) Восстановить БД через MSSQL Management Studio с галочкой "Close existing connections to destination database", используя трюк из https://stackoverflow.com/questions/19029787/why-is-close-existing-connections-to-destination-database-grayed-out-on-sql-se (поставить галочку ДО выбора источника и получателя) согласно совету в https://www.alfa-level.ru/vosstanovlenie-arhivnoj-kopii-bazy-1s-klient-server .
После восстановления в клиенте 1С на разных этапах возникают ошибки "Сеанс завершен администратором" (вложен пример ошибки, выдаваемой Конфигуратором при попытке открытия окна расширений конфигурации). Очевидно, сервер 1С не восстановил сам соединение с БД корректно.
Более того, попытка перезапуска сервера также виснет (ошибка "The service did not respond to the start or control request in a timely fashion").
3) В консоли администрирования 1С в разделе "информационные базы" не нашел каких-либо пунктов типа "Остановить базу" или каких-то других средств указать серверу разорвать/восстановить соединение с конкретной базой MSSQL.
Ваша проблема в том, что база не заблокирована на уровне кластера 1С, значит сеансы (хоть пользовательские, хоть служебные от самого кластера) - могут постоянно стучаться в базу и мешать работе sql.
1) Установить блокировку сеансов на базу в кластере 1С. См. фото. Поле Сообщение - необязательно. Код - хоть "123" но чтоб был. Ждать 5 минут. (или смотреть что сеансы в консоли сдохли)
2) Выполнить восстановление легко и непринужденно, без костылей.
Если с базой соединений нет, то все восстанавливается без проблем, не раз делал, никаких особенных действий не нужно.
Если есть, то это - очевидно - невозможно.
День добрый. Регламентные задания 1С в консоли администрирования для этой базы нужно отключить, пользователей выгнать, но думаю, это и так понятно. Может быть, дело не в базе, а ее кеше серверном или пользовательском? Что вообще с ней случилось, что понадобилось восстановление? Из кластера серверов можно удалить, на крайний случай, а потом заново добавить после восстановления бекапа. Что сам сервер MSSQL пишет по поводу этой базы, когда в 1С ошибки возникают, или ничего не пишет?
Ваша проблема в том, что база не заблокирована на уровне кластера 1С, значит сеансы (хоть пользовательские, хоть служебные от самого кластера) - могут постоянно стучаться в базу и мешать работе sql.
1) Установить блокировку сеансов на базу в кластере 1С. См. фото. Поле Сообщение - необязательно. Код - хоть "123" но чтоб был. Ждать 5 минут. (или смотреть что сеансы в консоли сдохли)
2) Выполнить восстановление легко и непринужденно, без костылей.