在还原SQL Server数据库之前等待连接关闭

lst*_*zyk 7 sql-server replication sql-server-2008

我有一个使用两个数据库的Web应用程序.DB1用户执行其CRUD(创建,读取,更新,删除)操作.数据库DB2是我用于报告目的的其他服务器上的只读数据库.每小时我的DB1保存事务日志,并且在DB2上我有一个工作可以在DB2上恢复它们​​以使其保持最新状态.

我面临的问题是,如果有用户在DB2上运行报告(经常发生),他们会从sql server断开连接,因为我获得了恢复数据库的独占访问权限.恢复每个日志所需的时间在1-4分钟之间.

我如何实现让我们称之为wait-n-restore功能,其中我的作业在将数据库切换到独占访问并恢复日志之前等待用户的查询完成?

我的两台机器都运行SQL Server 2008 64位标准版

lst*_*zyk 2

我的问题的很大一部分是使用池连接 - 在这种情况下,即使没有执行任何报告,连接也保持活动状态。我修改了连接字符串,将连接池设置为 false,并循环检查与报告数据库的打开用户连接,直到值为 0。幸运的是,我不必创建触发器来将用户退回。