天天看點

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