SQL Server Job Introduction - 做業(Job)定時備份 磁盤檢查

SQL Server Job Introductionsql

Wisdom Guo<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />shell

咱們先了解下SQL Server中的Job,而後再看如何進行定時備份,以及如何檢查磁盤空間;數據庫

首先, Job(做業), 是在SQL Server Agent 服務中的,首先,你須要啓用這個服務才能進行做業建立,運行;dom

啓動服務:

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />測試

或者,開始菜單中,用 SQL Server Configuration Manager進行啓用:spa

 

建立Job

SQL Server Agent中的Jobs節點下,點擊右鍵: New Joborm

1.       屬性Job名字;server

2.       在步驟(steps)中,創建做業的具體步驟,這裏能夠用cmd,也能夠用SQL腳原本執行具體的步驟內容;xml

3.       在時間表(schedules)中,創建做業執行的週期時間,如天天一次,每週一次等;blog

4.       並且能夠在失敗的時候選擇是發郵件啊,仍是記錄到event log等;

 

·         CmdExec 就是經過sql server去執行dos 命令;

·         T-SQL: 這個就不用說啦,腳本啦

下面咱們來看下如何寫備份(backup)腳本:

這個是最簡單的差別備份方式啦:

Backup database [DatabaseName]

to disk ='D:/db backup/test.bak'

with INIT, differential

而後創建schedule:咱們指望天天運行一次,進行備份:

新建schedulerun daily,設置時間。

 

創建好以後咱們就能夠測試一下是否正確:

 

若是出現錯誤的,使用view History進行查看。

這些都是使用Job的基本知識,簡單介紹一下。

檢查磁盤空間Job

下面咱們來如何進行磁盤空間查詢:

1.使用xp_fixeddrives 查詢磁盤空間統計:

declare @FreeSpaceStat table(

      DriveLabel char(1)

      ,FreeMB int)

insert into @FreeSpaceStat exec xp_fixeddrives

2.使用EXEC master.dbo.sp_databases 獲得數據庫大小統計

注意:一個是以MB爲單位,一個是以KB爲單位,比較的時候須要轉換;

通常:是以數據庫大小的2倍做爲剩餘空間是否足夠的標準;

declare  @DBSizeStat table(

      [name] nvarchar(300)

      ,[size] int

      , remark nvarchar(300))

insert into @DBSizeStat EXEC master.dbo.sp_databases

3.在須要刪除的時候,使用:xp_cmdshell 執行dos命令就能夠了:

Set @ DeleteString = ‘del c:/1.txt’

exec xp_cmdshell @DeleteString;

Note: 默認,xp_cmdshell 是禁用的,須要reconfigure一下,啓用xp_cmdshell,以下:

 

EXEC master.dbo.sp_configure 'show advanced options', 1

 

RECONFIGURE

 

EXEC master.dbo.sp_configure 'xp_cmdshell', 1

 

RECONFIGURE

 

 

 

而後創建Job,設置step導入以上腳本,而後設置Schedule,搞定。

Note:如下是返回某目錄下的文件,以時間排序的命令:

'dir "'+ @BackupDir + '" /b /a-d /o-d'

其中: /o-d 是最老的文件在最上面; /od就是最新的文件在返回列表的Top位置上了。