天天看点

sql2005数据库远程备份

--打开高级设置

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 @[email protected]

set @RemotePathstr = 'Z:/DataBak/'[email protected][email protected]+'.bak' --备份路径+命名+备份日期

backup database @DBName to [email protected]

--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