一般對資料庫備份時除了備份在本機外,都還會要求備份到別台備援機上

當在什麼都沒改變的狀態下 執行備份 會出錯
--情況
SQL 2000 想要執行 備份到別台主機時,發生錯誤
伺服器:訊息 3201,層級 16,狀態 1,第 1 行,無法開啟備份裝置 'E:\pubs.dat'。
裝置錯誤或裝置離線。若需詳細資訊,請參閱 SQL Server 錯誤記錄檔。
伺服器:訊息 3013,層級 16,狀態 1,第 1 行,備份或還原作業不正常終止。)

--解決方式
至服務中點選內容 ==> 登入 ==> 將本機帳號改為 這個帳號 即具有 Adminstrator 權限 和密碼的帳戶
並重新啟動後即可


--實際操作

--這是最精簡的 t-sql
BACKUP DATABASE Northwind
TO DISK ='\\ip\111\xxx.bak'
go


--這是 阿6仔 的 t-sql,就是把備份檔的名稱弄成現在時間
DECLARE @CurDate datetime
DECLARE @BkTime nvarchar(20)
DECLARE @DelTime nvarchar(8)
DECLARE @DBName varchar(30)
Declare @BkFolder nvarchar(100)
Declare @BkLogFile Varchar(200)
Declare @DelFile Varchar(200)
Declare @BkFile Varchar(200)
--设置需要备份的数据库
SET @DBName='database'
--设定存放备份文件的文件夹
SET @BkFolder='\\20.1.250.83\share'
--取得备份时间
SET @CurDate=getdate()
SET @BkTime=convert(nvarchar(8),@CurDate,112)+'.'+Convert(nvarchar(2),DatePart(hh,@CurDate)) + '.' +
Convert(nvarchar(2),DatePart(mi,@CurDate))+ '.' +
Convert(nvarchar(2),DatePart(ss,@CurDate))
--取得需要删除的备份文件的时间
SET @DelTime=convert(nvarchar(8),getdate()-3,112)
--生成删除备份文件语句
SET @DelFile ='Del "' + @BkFolder + '\' + @DBName +@DelTime +'*'
--生成数据库备份文件名
SET @BkFile=@BkFolder + '\'+@DBName + @BkTime + '.BAK'
--执行删除备份文件
Exec Master.dbo.Xp_CmdShell @DelFile
--备份数据库
BackUp Database @DBName To Disk=@BkFile
arrow
arrow
    全站熱搜

    YCH 發表在 痞客邦 留言(0) 人氣()