SQL server 实现自动异地备份

一、前提条件
1.sqlserver2005 要开启:xp_cmdshell 。
2.两个机器要能联通,可以在命令行测试:
net use z: \\remote_IP\f\remote_backup_dir "password" /user:remote_IP\administrator'
3.开启 sql server 代理。
二、在建立作业
1.在对象资源库中点开“sql server 代理”-->右击“作业”选项-->选择“新建作业”。
2.在“新建作业”面版上的“常规”选项卡中填入“作业名”。
3.在“新建作业”面版上的“步骤”选项卡中的最下方找到“新建(N)”按钮 新建作业。
4.在在“新建作业步骤”面版中填入“步骤名称” 选择“数据库” 就是你要选择备份的数据库。
5.在“命令M”右边的文本框中填入如下代码:

declare @dbname nvarchar(200)   
set @dbname = 'db_name'     ---'db_name'     为数据库名

declare @string nvarchar(200)   
   
set @string = net use z: \\remote_IP\f\remote_backup_dir "password" /user:remote_IP\administrator'  
-----remote_IP :为远程机器地址
-----f:远程机器的盘符
-----remote_backup_dir:  远程机器的盘符共享文件夹(就是你保存数据库备份文件的位置)
-----"password"  :远程机器密码
----administrator:远程机器用户名   

exec master..xp_cmdshell @string   

declare @date datetime     
set @date = GetDate()   
   
declare @str nvarchar(100)   
   
set @str = D:\local_backup_dir\db_name_'+ convert(nvarchar(12), @date, 112) + '_' + DateName(hour, @date) + DateName(minute, @date) + '.bak'  
----D:\local_backup_dir   :你本机包存备份文件的地址
backup database @dbname to disk=@str with init   
declare @str1 nvarchar(100)   
   
set @str1 = 'copy '+ @str +' z:'   
   
exec master..xp_cmdshell @str1   

exec master..xp_cmdshell 'net use z: /delete'   


三、在新建作业面版上选择“计划” 这在里设置你要备份的频率。
四、完成后在作业上选择“开始作业”然后就OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章