Sql 获取托管在链接服务器上的数据库的大小?
有人知道如何获得托管在不同服务器上的数据库的大小吗?我基本上希望在服务器上的作业中监视该DB的大小。 我试过这样的方法:Sql 获取托管在链接服务器上的数据库的大小?,sql,sql-server,sql-server-2008,tsql,sql-server-2012,Sql,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,有人知道如何获得托管在不同服务器上的数据库的大小吗?我基本上希望在服务器上的作业中监视该DB的大小。 我试过这样的方法: select db_name(dbid), str(convert(dec(15),sum(size))* 8192/ 1048576,10) from [LINKEDSERVER].master.sys.sysaltfiles group by dbid order by 2 desc 出于某种原因,这会为我提供当前服务器上的数据,而不是远程服务器上的数据。 另外,我
select db_name(dbid), str(convert(dec(15),sum(size))* 8192/ 1048576,10)
from [LINKEDSERVER].master.sys.sysaltfiles
group by dbid order by 2 desc
出于某种原因,这会为我提供当前服务器上的数据,而不是远程服务器上的数据。
另外,我在一个论坛上读到sysaltfiles只在服务器重启时更新?这将使它无法用于监视,所以您有更好的选择吗?试试这个,它可以工作,我检查过了
EXEC ('SELECT d.name,
ROUND(SUM(mf.size) * 8 / 1024, 0) Size_MBs
FROM sys.master_files mf
INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4
GROUP BY d.name
ORDER BY d.name') AT [LINKEDSERVER]
sp_spaceused我没有要测试的链接服务器。我得到消息7411,级别16,状态1,第1行服务器“LINKEDSERVER”没有为RPC配置。好的,在链接服务器上将RPC设置为true,现在它可以工作了。谢谢