通過作業調度建立SQL Server的自動備份
SQL Server的作業調度來建立自動備份的方法
◆1、進入企業管理器中->管理->sql server代理->作業;
◆2、新建作業,作業名稱隨便取,例如:data備份,所有者選擇sa,當然你也可以選擇其他用戶,前提是該用戶有執行作業的權限;
◆3、點擊步驟標簽,進入步驟面板。新建步驟,步驟名可以隨便填寫,如步驟1,類型和數據庫默認,不需要修改。命令中寫入以下語句:
BACKUP DATABASE [數據庫名] TO DISK = N'F:data數據庫備份' WITH NOINIT , NOUNLOAD , NAME = N'數據庫 備份', NOSKIP , STATS = 10, NOFORMAT
注意:需要修改的地方,數據庫名,DISK=(這里需要填寫路徑和你的數據庫備份的名稱)后面的Name=可以隨便填寫。
◆4、點擊調度標簽,進入調度面板,新建調度,名稱隨便填寫,選擇反復出現,點更改可以選擇你想要執行任務的隨意調度。如每天,每2天,每星期,每月等。根據需要自己設置;
◆5、確定后,不要忘記一件事情,在你剛才建立的工作上點右鍵,啟動工作,如果你的工作沒有問題,將會提示執行成功,并有相對應的備
份文件在你的磁盤上出現;
◆6、還有一個重要的問題就是你的sql server agent服務器已經啟動。
如果我們需要根據每天的日期來生成一個新的備份,以便我們區別備份文件。這時,我們需要修改一下剛才的sql語句。參考實例:
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
時間戳不帶秒:
substring(replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':',''),1,12 )
