我编写了一个通过网络连接到系统的应用程序,并将事件从该系统记录到SQL Server数据库。
我需要在SQL Server出现故障时测试应用程序的行为。有没有办法在SQL Server系统上只杀死一个数据库而不影响其他数据库?
如果没有办法模拟SQL Server关闭。
应该没用,但应用程序是用Java编写的。
答案 0 :(得分:5)
您可以使用T-SQL将sqlcmd用于set the database in single-user mode or detach the database。这将模拟以受控方式脱机的数据库,但不会模拟以不受控制的方式关闭的服务器,这可能更有用。
答案 1 :(得分:3)
扩展@ bzlm的回答:
USE master
GO
ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
答案 2 :(得分:2)
您可以使数据库脱机
ALTER DATABASE YourDatabase SET OFFLINE
GO
答案 3 :(得分:0)
除了其他答案之外:您甚至可能想要测试不同的故障模式。
其他答案模拟数据库关闭,而数据库运行的服务器保持运行状态。
例如,您可能还想模拟网络故障或服务器崩溃;这可以通过改变应用服务器上的网络设置,或者只是拉动它的(网络)插头来完成。
当然,这是否有意义取决于您的应用。
答案 4 :(得分:0)
我只是停止SQL Server服务。