我有一个使用两个数据库的 Web 应用程序。 DB1 用户执行他们的 CRUD(创建、读取、更新、删除)操作。数据库 DB2 是我用于报告目的的不同服务器上的只读数据库。我的 DB1 每小时都会保存事务日志,并且在 DB2 上我有一项工作在 DB2 上恢复它们以使其保持最新状态。
我面临的问题是,如果有用户在 DB2 上运行报告(经常发生),当我获得恢复数据库的独占访问权限时,他们会与 sql 服务器断开连接。恢复每个日志所需的时间在 1-4 分钟之间。
我如何实现让我们称之为等待-n-恢复功能,我的工作在将数据库切换到独占访问和恢复日志之前等待用户的查询完成?
我的两台机器都运行 SQL Server 2008 64 位标准版
最佳答案
我的问题的很大一部分是使用池连接 - 在这种情况下,即使没有执行报告,连接也保持事件状态。我修改了我的连接字符串,将连接池设置为 false 并在循环中检查打开的用户连接到您的报告数据库,直到值为 0。幸运的是,我不必创建触发器来让用户退出。
关于sql-server - 在还原 SQL Server 数据库之前等待连接关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045412/