通過作業(yè)調(diào)度建立SQL Server的自動(dòng)備份
SQL Server的作業(yè)調(diào)度來建立自動(dòng)備份的方法
◆1、進(jìn)入企業(yè)管理器中->管理->sql server代理->作業(yè);
◆2、新建作業(yè),作業(yè)名稱隨便取,例如:data備份,所有者選擇sa,當(dāng)然你也可以選擇其他用戶,前提是該用戶有執(zhí)行作業(yè)的權(quán)限;
◆3、點(diǎn)擊步驟標(biāo)簽,進(jìn)入步驟面板。新建步驟,步驟名可以隨便填寫,如步驟1,類型和數(shù)據(jù)庫默認(rèn),不需要修改。命令中寫入以下語句:
BACKUP DATABASE [數(shù)據(jù)庫名] TO DISK = N'F:data數(shù)據(jù)庫備份' WITH NOINIT , NOUNLOAD , NAME = N'數(shù)據(jù)庫 備份', NOSKIP , STATS = 10, NOFORMAT
注意:需要修改的地方,數(shù)據(jù)庫名,DISK=(這里需要填寫路徑和你的數(shù)據(jù)庫備份的名稱)后面的Name=可以隨便填寫。
◆4、點(diǎn)擊調(diào)度標(biāo)簽,進(jìn)入調(diào)度面板,新建調(diào)度,名稱隨便填寫,選擇反復(fù)出現(xiàn),點(diǎn)更改可以選擇你想要執(zhí)行任務(wù)的隨意調(diào)度。如每天,每2天,每星期,每月等。根據(jù)需要自己設(shè)置;
◆5、確定后,不要忘記一件事情,在你剛才建立的工作上點(diǎn)右鍵,啟動(dòng)工作,如果你的工作沒有問題,將會(huì)提示執(zhí)行成功,并有相對(duì)應(yīng)的備
份文件在你的磁盤上出現(xiàn);
◆6、還有一個(gè)重要的問題就是你的sql server agent服務(wù)器已經(jīng)啟動(dòng)。
如果我們需要根據(jù)每天的日期來生成一個(gè)新的備份,以便我們區(qū)別備份文件。這時(shí),我們需要修改一下剛才的sql語句。參考實(shí)例:
declare @filename nvarchar(100)
set @filename='E:data_BackupBIS_data_backup_'+convert(char(10),getdate(),112)+'.bak'
print @filename
BACKUP DATABASE [BIS] TO DISK = @filename WITH NOINIT, NOUNLOAD, NAME = N'BIS_data_backup', NOSKIP , STATS = 10, NOFORMAT
或者按如下寫法:
DECLARE @BACKFILENAME VARCHAR(200)
DECLARE @DATE CHAR(10)
DECLARE @FILENAME VARCHAR(200)
DECLARE @NAME VARCHAR(200)
SET @DATE=CONVERT(CHAR(10),GETDATE(),120)
SET @FILENAME='E:data_Backup'
SET @BACKFILENAME=@FILENAME+@DATE
SET @NAME='BIS_data_backup'
BACKUP DATABASE [BIS]
TO DISK = @BACKFILENAME WITH INIT , NOUNLOAD , NAME = @NAME, NOSKIP , STATS = 10, NOFORMAT
或者:
EXECUTE master.dbo.xp_sqlmaint N'-PlanID 1FAEE7FD-F0CC-4E9C-8100-FC1F9AF39063 -WriteHistory -VrfyBackup -BkUpMedia DISK
-BkUpDB 'E:data_backup' -BkExt 'BAK''
舉例:
declare @filename nvarchar(100)
set @filename='E:data_BackupBIS_data_backup_'+replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),'
',''),':','')+'.bak'
print @filename
BACKUP DATABASE [BIS] TO DISK = @filename WITH NOINIT, NOUNLOAD, NAME = N'BIS_data_backup', NOSKIP , STATS = 10, NOFORMAT
時(shí)間戳不帶秒:
substring(replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':',''),1,12 )
