sql2005数据库远程备份

来源:互联网 发布:淘宝功能中心 编辑:程序博客网 时间:2024/06/04 19:45

--打开高级设置
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
--打开xp_cmdshell扩展存储过程
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
declare @strdirname varchar(100)
declare @RemotePathstr varchar(100)
declare @LocalPathstr varchar(100)
declare @DBName varchar(100)
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','') --获得日期
--启动computer browser
exec master..xp_cmdshell 'net start "computer browser"'
RECONFIGURE
--添加网络驱动器映射
exec master..xp_cmdshell 'net use z: //192.168.0.3/F$/DataBase "123456" /user:192.168.0.3/administrator'
--实施备份

create   table   #数据库集合  
(   数据库名称   varchar(50)   null )  
insert   into   #数据库集合(数据库名称)  values('database1')
insert   into   #数据库集合(数据库名称)  values('database2')
insert   into   #数据库集合(数据库名称)  values('database3')


declare   @DataBaseName   varchar(255)          --定义变量来保存值
declare   mycursor   cursor   for   select 数据库名称  from   #数据库集合       --为所获得的数据集指定游标
open   mycursor                                       --打开游标
fetch   next   from   mycursor   into   @DataBaseName       --开始抓第一条数据
while(@@fetch_status=0)           --如果数据集里一直有数据
begin
    set @DBName=@DataBaseName
    set @RemotePathstr = 'Z:/DataBak/'+@DBName+@strdirname+'.bak' --备份路径+命名+备份日期
    backup database @DBName to disk=@RemotePathstr
    --print @RemotePathstr
                fetch   next   from   mycursor   into   @DataBaseName     --跳到下一条数据
end
close   mycursor                 --关闭游标
deallocate   mycursor   --删除游标

 drop table #数据库集合
--删除映射
exec master..xp_cmdshell 'net use z: /delete'
--关闭xp_cmdshell扩展存储过程、高级设置
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE

原创粉丝点击