首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

SQL Server中如何备份到异机

作者:  时间: 2011-04-23

这里提供两种方法:

1,写成存储过程,建立作业定时备份

--在sql中映射一下 
exec master..xp_cmdshell 'net use z: \\computer_name\D$ "密码" /user:computer_name\administrator' 
/*--说明: 
z:是映射网络路径对应本机的盘符,与下面的备份对应 
\\computer_name\D$是要映射的网络路径 
computer_name是远程的计算机名, 
administrator是登陆的用户名 
密码 指定的administrator用户的密码 
--*/ 
--备份;with init覆盖 ¦noinit添加 
backup database 库名 to disk='E:\H_BACKUP.bak' with init 
--COPY 
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:' 
--删除(这句可以去掉) 
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak' 
--完成后删除映射 
exec master..xp_cmdshell 'net use z: /delete'

2,调度

企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: 
declare @strsql varchar(1000) 
declare @strdirname varchar(50) 
declare @strcmd varchar(50) 
declare @strsend varchar(1000) 
declare @strdate varchar(50) 
exec master..xp_cmdshell 'net use \\192.168.0.151\d$ Password /user:192.168.0.151\administrator' 
set @strsql='backup database new_his to disk=''\\192.168.0.151\d$\serverd\' 
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'12' 
set @strcmd='md \\192.168.0.151\d$\serverd\' s
et @strcmd=@strcmd+@strdirname 
exec master..xp_cmdshell @strcmd 
--print @strsql 
set @strsql=@strsql+@strdirname+'\new_hisbackup.dat'' with init,nounload,noskip,noformat' -
-print @strsql 
exec (@strsql) 
----其中写的IP地址及共享目录,网友自行修改,Password一定要正确 --确定 --"调度"项 --新建调度 --"名称"中输入调度名称 --"调度类型"中选择你的作业执行安排 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.