У меня есть скрипт для автоматического восстановления базы данных из резервной копии. Мой сценарий сначала останавливает все экземпляры сервера приложений, останавливает все базы данных, а затем восстанавливает их из резервной копии. Ниже приведен псевдокод:
foreach appserver:
asbman -name (appserver) -stop
foreach database:
dbman -name (database) -stop
proutil database.db -C enablelargefiles
echo y | prorest database.db backup.bak -verbose
Как только мой скрипт достигает команды prorest, он выводит следующую ошибку:
** The database D:\Directory\Wrk\db\database is in use in multi-user mode. (276)
После ожидания ~60 секунд команда prorest снова выполняется, как и ожидалось, и база данных восстанавливается правильно. Я предполагаю, что есть процессы, связанные с базой данных, которые все еще работают после остановки базы данных. Я хотел бы найти решение этой проблемы без использования таких методов, как повторная попытка сна, чтобы определить, когда базу данных можно восстановить. Есть ли решение этой проблемы или есть более эффективные методы восстановления базы данных таким образом?