創建作業的SQL

創建備份MYDB的備份腳本,並刪除5天前備份

USE msdb ;
GO
EXEC dbo.sp_add_job
    @job_name = 'Job_backup_DB',  --作業的名稱
    @enabled = 1, --指示添加的作業的狀態(默認值爲(啓用))
    @description = '數據庫定期備份作業!', --作業的說明
    @owner_login_name = 'sa', --擁有作業的登錄名
    @notify_level_eventlog = 2, --0 從不成功後(默認值)失敗後始終
    @notify_level_email = 2, --默認值爲,指示從不發送
    @notify_level_netsend = 2, --默認值爲,指示從不發送
    @notify_level_page = 2, --默認值爲,指示從不發送
    @category_id=3,    --作業的類別ID
    @delete_level = 0 ; --默認值爲,不刪除,用於指示何時刪除作業
GO

USE msdb ;
GO
EXEC sp_add_jobstep
    @job_name = 'Job_backup_DB', --步驟的作業的名稱
    @step_name = 'Job_backup_DB_step', --步驟的名稱
    @server=@@servername,--服務器名稱
    @database_name='master',--數據庫名
    @subsystem = 'TSQL', --Transact-SQL 語句\製表符--CHAR(9) 換行符CHAR(10) 回車CHAR(13) 
    @command ='/*****完全備份******/
DECLARE @Path_MYDB Nvarchar(2000),@Path_MYDB_log Nvarchar(2000)
DECLARE @olddate datetime
Set @Path_MYDB =''D:\DataBak\MYDB''+CONVERT(NVARCHAR(10),getdate(),112)+''.bak''
Set @Path_MYDB_log =''D:\DataBak\MYDB_log''+CONVERT(NVARCHAR(10),getdate(),112)+''.bak''
--PRINT @bak_name
USE master
Backup Database [MYDB] to disk=@Path_MYDB;
Backup Log [MYDB] to disk=@@Path_MYDB_log
Use [MYDB]
DBCC SHRINKFILE (N''MYDB_log'' , 0, TRUNCATEONLY);
select @olddate=getdate()-5
execute master.dbo.xp_delete_file 0,N''D:\DataBak\'',N''bak'',@olddate', --添加要執行的SQL
    @retry_attempts = 2,--該步驟失敗時的重試次數
    @retry_interval = 0.05 ; --兩次重試之間的間隔時間(分鐘)
GO
USE msdb ;    
GO
EXEC sp_add_schedule
    @schedule_name = 'Job_backup_DB_plan' ,--計劃的名稱
    @freq_type = 4 , --指示作業執行時間的值爲一次,爲每天(,8,16,32等參考幫助文檔)值爲的次方
    @freq_interval = 1,--作業執行的天數說明同上
    @active_start_time = 010000 ;--數據類型爲int,默認值爲,指示小時制的上午:00:00,並且必須使用HHMMSS 的格式輸入
GO
EXEC sp_attach_schedule
   @job_name = 'Job_backup_DB', --計劃的作業的名稱
   @schedule_name = 'Job_backup_DB_plan' ; --作業設置的計劃的名稱
GO

USE msdb ;
GO
EXEC dbo.sp_add_jobserver
    @job_name = 'Job_backup_DB', --作業的名稱
    @server_name = @@servername ; --該作業的目標服務器的名稱
GO


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章