Sql 检查外部数据库是否联机
我知道这句话告诉我“MyDatabase”数据库是在线的:Sql 检查外部数据库是否联机,sql,sql-server,sql-server-2008-r2,windows-server-2008,Sql,Sql Server,Sql Server 2008 R2,Windows Server 2008,我知道这句话告诉我“MyDatabase”数据库是在线的: select databasepropertyex('MyDatabase', 'Status') 如果我需要检查另一台服务器上的数据库,该怎么办?假设我已经有一个链接服务器,调用应该是这样的: select databasepropertyex('[192.168.111.33].MyOtherDatabase', 'Status') 但它不起作用,有人知道怎么检查吗? 谢谢。通常,您只需尝试连接到数据库,并在连接失败时捕获错误。
select databasepropertyex('MyDatabase', 'Status')
如果我需要检查另一台服务器上的数据库,该怎么办?假设我已经有一个链接服务器,调用应该是这样的:
select databasepropertyex('[192.168.111.33].MyOtherDatabase', 'Status')
但它不起作用,有人知道怎么检查吗?
谢谢。通常,您只需尝试连接到数据库,并在连接失败时捕获错误。但是,根据您的网络设置和安全性,可能无法直接连接到数据库服务器。具体如何做到这一点取决于您使用的语言和提供者 若要查看SQL Server 2008数据库是否可以接受连接,请查看排序规则属性。我知道这听起来有多奇怪,但那是真的 打开数据库时,可能会返回联机状态 目前尚未恢复。确定数据库何时可以接受 连接,查询DATABASEPROPERTYEX的排序规则属性 例如,许多数据库服务器被设置为拒绝来自除一个以外的所有IP地址的连接。这在基于web的设置中尤其常见;这是一项基本的安全措施。在这种情况下,像这样的连接(就在下面)会起作用。应用程序服务器或web服务器上的代码尝试连接到数据库服务器,如果失败,则返回错误
Your server --> Application server --> Database server
or workstation or web server
但是这样的连接是不行的,因为数据库服务器被配置为只接受来自应用服务器或web服务器的连接
Your server ----------------------------> Database server
or workstation
Application server
or web server
可能必须作为传递查询运行,例如
OPENQUERY ( [192.168.111.33] ,'select databasepropertyex(MuOtherDatabase, ''Status'')' )
(假设您已经设置的链接服务器被称为[192.168.111.33],如上所述-使用IPs似乎是一种可疑的命名约定?哪个平台?哪个数据库服务器?哪种环境?抱歉SQL Server 2008R2和Windows 2008“我知道这句话告诉我‘MyDatabase’数据库处于联机状态”不完全正确。该SQL语句尝试选择数据库的特定属性。该语句可能由于与数据库的联机或脱机状态无关的原因而失败。我只是尝试在存储过程中从SQL Server执行该操作