У меня есть веб-приложение, которое использует две базы данных. Пользователи DB1 выполняют свои операции CRUD (создание, чтение, обновление, удаление). База данных DB2 — это база данных только для чтения на другом сервере, которую я использую для создания отчетов. Каждый час моя DB1 сохраняет журналы транзакций, а в DB2 у меня есть задание, которое восстанавливает их в этой DB2, чтобы поддерживать ее в актуальном состоянии.
Проблема, с которой я сталкиваюсь, заключается в том, что если есть пользователи, выполняющие отчеты в DB2 (что происходит довольно часто), они отключаются от сервера sql, поскольку я получаю эксклюзивный доступ для восстановления базы данных. Время, необходимое для восстановления каждого журнала, составляет от 1 до 4 минут.
Как я могу реализовать, скажем так, функцию ожидания и восстановления, когда моя работа ожидает завершения запросов пользователей, прежде чем переключать базу данных на монопольный доступ и восстанавливать журнал?
Обе мои машины работают под управлением SQL Server 2008 64 Bit Standard Edition.