一,如何建立连接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
二,利用命令和本地的bak文件恢复远程数据库,步骤:
1,建立共享文件夹,将存放bak文件的文件夹设为共享文件夹
net share ShareFolder=D:\tmp\db.bak 该命令可以通过C#来调用
如果要取消共享,可以这样写
net share ShareFolder /delete
2,启用xp_cmdshell,sql server 2005/2008 默认是禁用此存储过程的。
--启用
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
--如果要禁用可以这样写
sp_configure 'xp_cmdshell',0
reconfigure
sp_configure 'show advanced options',0
reconfigure
3,建立共享信用关系,userName,pwd是登录192.224.109.64 这台机器的用户名和密码。
GO
EXEC xp_cmdshell 'net use \\192.224.109.64\ShareFolder /del';
GO
第二句是如何撤消共享信用关系的。
4,执行恢复命令
dbnew,dbnew_log 是备份时的数据库名和日志文件名。
其中,如下语句
select REVERSE (SUBSTRING(reverse(filename),charindex('\',reverse(filename)),8000)),name from sysfiles
可以获取sql server 数据文件,日志文件的存放路径。
5,执行完毕后做一些相反操作即可,比如禁用xp_cmdshell,撤消共享信用关系,取消文件夹共享等。