解讀SQL Server“資料庫維護計劃”

來源:互聯網
上載者:User
作為網管員,無論其管理的網路的規模是大還是小,在日常的管理中除了維護網路平穩運行、及時排除網路故障、保護網路安全等工作以外,備份網路中關鍵資料也是其中的一個非常非常重要的工作環節。 網路中的各種故障無非就分兩種:軟體故障和硬體故障。對於“硬體故障”可以通過維修或更換硬體裝置得到及時解決;對於“軟體故障”則可以通過重新安裝或升級軟體、重做網路或應用軟體系統等方法及時解決,而且用此方法來解決網路故障大多需要一些基礎的、關鍵的資料支援才能得以恢複正常。但是,網路中諸如此類的關鍵資料(特別是“應用軟體系統”中的關鍵資料)的損壞或丟失,絕大部分是無法恢複和彌補的。即使可以恢複部分資料,彌補它們所花費的代價(諸如時間、人力、財力、物力等)都可能遠遠超出了公司的承受能力。

所以說,注重資料的備份工作是網管員日常管理工作中的必須時刻關注的一項任務,也是必須周期性重複操作的一項工作。

目錄

現行備份策略
具體實現步驟
結束語

現行備份策略

我公司在組建區域網路時,考慮到商業企業的特點,仔細考量了購、銷、存三大環節中發生的各種資料及其儲存問題後,選定了以Windows 2000 Server為作業系統,SQL Server 2000為資料庫平台來搭建區域網路的應用系統的軟體平台,以網線為載體將購、銷、存等核心部門的電腦通過區域網路平台緊密地串連起來。這樣,各個核心部門每天的任何一筆業務都及時地、動態地儲存到公司區域網路的核心Dell伺服器上的SQL Server 2000資料庫中,並以此為基礎平台向各方提供所需的各種資料服務。

因此,自公司區域網路開始正式運作之日起,作為網管員的我就非常注重對區域網路中的關鍵資料——特別是這些業務資料的備份工作。同時,我也希望備份資料的軟體能夠實現以下自動功能。

功能1:能夠在每天的某個固定的時刻(如夜晚0:00:00,當然這個時間是可以自主設定的)對包含所有業務資料庫在內的所有關鍵資料庫進行一次“完全備份”。

功能2:能夠在每天的0:00:00至23:59:59這段時間內,每間隔1個小時對功能1中所涉及到的各個資料庫的交易記錄進行“差異備份”。

功能3:每天都能夠保留功能1和功能2中所產生的資料庫和交易記錄的最近兩天的備份(即:前一天的和前兩天的),而且能夠自動地刪除久於兩天前的所有資料庫和交易記錄的備份。

功能4:定期(如每個星期一次)將所有關鍵資料庫的完全備份的副本備份到磁帶或其它儲存介質上(這部分工作可能需要手工完成)。

於是,圍繞這些功能的實現,在日常管理工作中,我儘可能地嘗試了各種備份資料的軟體和方法,如Windows 2000內建的“備份”工具、SQL Server 2000內建的“備份”功能等。這些備份軟體和方法的功能各有千秋,但是都存在以下缺點:

一種就是需要人工幹預,無法實現自動備份(如Windows 2000內建的“備份”工具)。如果採用這種方法,就必須時刻人工手動備份,萬一哪天因為出差或其它原因沒有進行備份,而這時又出現伺服器或資料故障的話,那麻煩就大了。

另一種就是能夠實現自動備份,但是舊的備份不能被自動地刪除(如SQL Server 2000內建的“備份”功能)。如果採取這種方法,就必須及時地手工刪除舊的備份,否則再大的硬碟也會迅速地被用完。

在相互比較後,我還是決定採用第二種——SQL Server 2000內建的“備份”功能對關鍵資料庫進行備份,因為它能夠實現“自動備份”功能,比第一種略強。所以,在一段時期內,我每天上班後的第一件事就是先檢查一下備份目錄下各種資料的新的備份,然後手工刪除舊的備份資料。這種做法一度讓我很是苦惱。

一天,我在利用SQL Server 2000的“協助”查詢某個Transact-SQL語句的語義解釋時無意中閱讀到“自動化管理工作”的內容。從頭到尾地仔細閱讀後,我不由得眼睛一亮,原來SQL Server 2000本身內建了一個能夠實現我的備份要求的、強大的功能——“資料庫維護計劃”。於是我立刻按照這部分內容的提示,以一個資料庫為實驗樣本一步一步地操作,成功地建立了一個資料庫維護計劃。經過一個星期的試運行,這個計劃果然能夠實現自動備份調度,以及自動刪除舊的資料備份,完全能夠滿足我的備份要求。

從那時起,我就利用SQL Server 2000的“資料庫維護計劃”備份所有關鍵資料庫,而且嚴格地、定期地執行功能4,每個星期五將完全備份的Database Backup到磁帶和區域網路中其它客戶機(主要是用於網路管理的網管PC)的硬碟上。這樣做的目的是,能同時異地儲存三份相同的備份,減少故障帶來的損失。

而且,通過SQL Server 2000的“資料庫維護計劃”,我現在能夠較輕鬆地備份所需各種資料,方便地管理其備份,相應地減少了日常工作量,也減輕了部分工作壓力。

具體實現步驟

目錄

第一步:開啟SQL Server“企業管理器”表單
第二步:找到“資料庫維護計劃”功能
第三步:建立“資料庫維護計劃”
第四步:維護和管理“資料庫維護計劃”
第五步:啟動SQL Server 2000代理以便執行“作業”
第六步:檢查結果

“資料庫維護計劃”功能在SQL Server 2000的“企業管理器”中可以找到。

說明:

1.以下操作是在伺服器的Windows 2000 Server上進行操作的。在Window 9X系統上操作相同。

2.由於SQL Server 2000執行備份時將產生許多檔案(特別是在進行交易記錄備份時),所以建議按資料庫名稱分別建立獨立的備份目錄進行儲存。

3.以下所有操作過程當中一般不會對資料庫的使用產生影響。

第一步:開啟SQL Server“企業管理器”表單

用按一下滑鼠工作列上的[開始] 按鈕中的“程式(P)”菜單下的“Microsoft SQL Server”子功能表中的“企業管理器”功能表項目,即可開啟SQL Server 2000的“企業管理器”表單。

第二步:找到“資料庫維護計劃”功能

在“企業管理器”表單中左側的樹型選項卡中,用按一下滑鼠“+”表徵圖擴充開“控制台根目錄”下的“Microsoft SQL Servers”,可以看到其下有一個“SQL Server組”;接著繼續擴充開“SQL Server組”,此時可以看到其下出現了伺服器的名稱(圖1中的“JXNC-SERVER”就是我的伺服器的名稱);再繼續擴充開此伺服器,可以看到其下列出了諸如“資料庫”、“資料轉換服務”等項目;最後單擊“管理”項目,可以看到其下存在一個“資料庫維護計劃”(1)。

圖1

單擊“資料庫維護計劃”項目,在“企業管理器”視窗右側將會顯示出已經存在的維護計劃項目。每個維護計劃均包括以下項目:

1.名稱:就是維護計劃的名稱。此名稱可以自訂,中英文皆可。

2.資料庫:就是維護計劃所進行維護的資料庫的名稱。

因為一個維護計劃允許同時維護多個資料庫,所以此處可以顯示出多個資料庫的名稱(在圖1中可以看到名為“系統資料庫備份”的資料庫維護計劃中的“資料庫”就包括三個資料庫:master、model和msdb)。

3.伺服器:也就是維護計劃所維護的資料庫所處的伺服器的名稱。“(local)”表示是本機伺服器。

4.對策:是指維護計劃所需要進行的具體維護工作的內容。

圖1中有3個“資料庫維護計劃”均為“Database Backup,交易記錄備份”,它的含義就是這些維護計劃中同時對所指定的資料庫進行“資料庫”和“交易記錄”的備份。

第三步:建立“資料庫維護計劃”

滑鼠右擊“資料庫維護計劃”項目,選擇“建立維護計劃(P)”功能,將開啟“資料庫維護計劃嚮導”表單,依照此嚮導能夠建立一個新的“資料庫維護計劃”。

步驟1:單擊 “下一步(N)”按鈕,開啟“選擇資料庫”表單(2)。在此表單中可以選定一個或多個的資料庫作為操作對象。為了敘述方便,我在此只選擇了一個資料庫“regie”。

 

圖2

步驟2:單擊圖2中的“下一步(N)”按鈕,開啟“更新資料最佳化資訊”表單(3)。

 

圖3

在此表單中可以對資料庫中的資料和索引重新進行組織,以及能夠設定在滿足一定條件的情況下,維護計劃自動刪除資料庫中的未使用的空間,以便提高效能。

但要注意的是,在此表單中,只要選定了“重新組織資料和索引頁[R]”複選框,“更新查詢最佳化器所使用的統計。樣本[D]”複選框將失效(變成灰色,不能選擇)。而且“重新組織資料和索引頁[R]”複選框和“從資料庫檔案中刪除未使用的空間[M]”複選框二者只要有一個被選中,其下的“調度[S]”功能才有效。單擊“更改[C]”按鈕可以對“調度”進行自訂。

各位讀者可以根據自身情況決定是否選用其中的功能。當然也可以通過單擊“協助”按鈕來查看各功能的具體含義。

在此表單中能夠便捷地設定每項作業的持續已耗用時間和啟動並執行頻率。完成自己的設定後,一定要選定右上方的“啟用調度[B]”複選框,這樣一個作業調度才算真正完成了。

步驟3:單擊圖3中的“下一步(N)”按鈕,開啟“檢查資料庫完整性”表單。

在此表單中可以設定維護計劃在備份資料庫前自動檢查資料庫的完整性,以便檢測由於硬體或軟體錯誤而導致資料的不一致。在此表單中只有先選定了“檢查資料庫完整性[H]”複選框,其下的“備份之前執行這些檢查[R]”和“調度[S]”功能才有效。單擊“更改[C]”按鈕可以對“調度”進行自訂。

各位讀者可以自主決定,較好的一種做法就是選中“檢查資料庫完整性[H]”複選框(推薦,因為有可能會修正一些錯誤)。

步驟4:在“檢查資料庫完整性”表單中的“下一步(N)”按鈕,開啟“指定Database Backup計劃”表單。

如需對資料庫進行備份,則必須選定“作為維護計劃的一部分來備份資料庫[A]”複選框,而且必須指定儲存備份檔案的位置:磁帶[P]或磁碟[K]。

如果選擇“磁碟[K]”作為Database Backup的位置,設定“調度”後單擊“下一步(N)”按鈕則顯示“指定備份磁碟目錄”表單(4)。

 

圖4

在圖4中,可以具體指定儲存備份檔案的目錄(可以使用預設的目錄,也可自訂)、備份檔案副檔名,而且能夠指示備份計劃自動地刪除早於某個時間(圖4中設定的是“2天”,也就是說兩天前的所有備份檔案將被自動地刪除,只留下最近兩天的備份)的備份檔案。而圖4中的“為每個資料庫建立子目錄[C]”功能只是在步驟1中選擇了多個資料庫時才有用,對於一個資料庫作用不大。設定後,單擊“下一步(N)”按鈕則顯示“指定交易記錄備份計劃”表單。

如果選擇“磁帶[P]”作為Database Backup的位置,設定“調度”後單擊“下一步(N)”按鈕則直接顯示“指定交易記錄備份計劃”表單。

步驟5:指定“交易記錄備份計劃”的過程與步驟4的過程完全相同,只是在設定“調度”上稍有差別(因為我的要求是資料庫每天備份一次,交易記錄每1小時備份一次)。

步驟6:對交易記錄的備份計劃全部設定後,單擊“下一步(N)”按鈕則顯示“要產生的報表”表單。

在此表單中可以指定用於存放整個備份計劃執行過程中的日誌的目錄。設定過程與圖4的操作及其相似。

 

圖5

步驟7:完成步驟6後,單擊“下一步(N)”按鈕則顯示“維護計劃曆史紀錄”表單。

在此表單中可以指定如何儲存此維護計劃的曆史紀錄(是存放在“本機伺服器”上,還是在“遠程伺服器”上),而且通過指定表中的行數可以限定曆史紀錄的儲存大小。

步驟8:完成步驟7後,單擊“下一步(N)”按鈕則顯示“正在完成資料庫維護計劃嚮導”表單(5)。

在此表單中可以自訂一個“計劃名[P]”(推薦,這樣便於管理和識別),當然也可使用預設的“計劃名[P]”。而且還可以通過對“計劃名[P]”下的文字框中的內容進行確認,如有誤,則可通過單擊表單中的“上一步[B]”按鈕退回到相應的表單進行修改。

步驟9:完成步驟8後,單擊“完成”按鈕,則顯示“維護計劃已建立成功。”的提示框,再單擊 “確定”按鈕即成功地設定了一個新的資料庫維護計劃。

從圖6中可以看到,已經成功的建立了一個新的資料庫維護計劃——“regie備份”。

第四步:維護和管理“資料庫維護計劃”

第三步完成後,對各個“資料庫維護計劃”的日常維護和管理都非常方便,只需要雙擊“資料庫維護計劃”即可對第三步中所涉及的內容進行變更、修正。

 

圖6

6所示,滑鼠右擊“regie備份”,單擊“屬性[R]”,或者直接雙擊“regie備份”,開啟“資料庫維護計劃”表單。在此表單中整合了第三步中涉及到的所有功能,每項功能都能任意修改,修改過程與第三步中的相應步驟一樣。

但需要說明的是,在設定圖7中的“報表”選項卡下的“文本報表”中的“刪除早於此時間的文本報表檔案[F]”選項時,也就是第三步中的步驟6中的內容,無論您將其設定成“分鐘”、“小時”、“天”,還是“月”,建立成功後都將被自動地更正為“周”,而且以後無論如何修改,儲存後再去查看時它仍將顯示為“周”,但不意味著其它選項無效,其它選項仍然有效。

 

圖7

第五步:啟動SQL Server 2000代理以便執行“作業”

完成第三步後,還需啟動SQL Server 2000 Agent(代理),以便執行“資料庫維護計劃”作業。

與展開SQL Server 2000“資料庫維護計劃”的步驟一樣,在“管理”項目中,可以發現存在一個“SQL Server Agent”(8)。

 

圖8

單擊“SQL Server Agent”下的“作業”子功能表,在“企業管理器”視窗右側將會顯示出已經存在的作業項目(在圖8中可以看到已經存在17個作業項目)。每個作業項目均包括以下資料列:

1.名稱:當然是指作業的名稱,可以自訂,中英文皆可。為了理解方便,建議用中英文結合。

每當建立立一個“資料庫維護計劃”,將自動產生以下預設名稱的作業:

(1)當建立的“資料庫維護計劃”中設定了“備份資料庫”功能時,將產生預設名為“DB 維護計劃‘******’的 DB 備份作業”的作業。

(2)當建立的“資料庫維護計劃”中設定了“備份交易記錄”功能時將產生預設名為“DB 維護計劃‘******’的 交易記錄備份作業(多伺服器)”的作業。

以上(1)和(2)中的“******”處將顯示“資料庫維護計劃”中的“計劃名”(也就是第三步步驟8中設定的“計劃名”)。

2.分類:指明該作業當前所屬的類別。預設值為“[未分類(本地)]”。

3.啟用:指明該作業是否處於“啟用”狀態。

4.可運行:指明該作業是否處於“可運行”狀態。

5.已調度:指明該作業是否處於“已調度”狀態。

6.狀態:指明該作業當前的運行狀態—不在運行、正在運行。

7.上次運行狀態(開始日期):顯示最近一次運行該作業後的狀態(“已成功”、“失敗”,還是“未知”),和運行時的日期和時間。

8.下次運行日期:指明下一次運行該作業的日期和時間。

8所示,滑鼠右擊“regie完全備份”作業,單擊“屬性[R]”,或者直接雙擊“regie完全備份”作業,開啟作業的“屬性”表單。在此表單中整合了該作業的詳細的配置項。每個配置項都能任意修改。“屬性”表單中有四個選項卡:

◆ 常規:在此選項卡中可以重新設定作業名稱(“名稱[N]”文字框)、修改作業的分類(“分類[Y]”下拉框)、指定作業的所有者(“所有者[W]”下拉框)、簡單地對作業進行描述(“描述[R]”文字框),以及決定是否啟用此作業(“啟用[E]”複選框)。

◆ 步驟:在此選項卡中可以建立、插入新的步驟,刪除、編輯已有的步驟。

單擊“編輯[E]”按鈕,在“編輯作業步驟”表單中的“常規”選項卡中的“命令[M]”文字框中可以查閱到該作業的執行語句。

◆ 調度:在此選項卡中可以建立調度、建立警報,刪除、編輯已有的調度。

◆ 通知:在此選項卡中可以設定作業完成時(即當作業成功時、作業失敗時)執行的操作,即寄送電子郵件、傳呼操作員、發出網路警報資訊、寫入Windows應用程式事件記錄檔、自動刪除等操作。

第六步:檢查結果

經過上述五個步驟後,一個完整的備份資料庫的計劃就建立起來了。可以通過“資源管理員”來檢查備份目錄下是否存在相應地備份檔案。

經過長時間的使用,如果以“保留2天的資料庫完全備份和2天的每個一小時的交易記錄備份”的備份策略來正確地建立了一個完整的資料庫維護計劃的話,無論何時查看相應備份目錄下的檔案,都應該存在102個檔案:

◆2個資料庫的完整備份,即2個以“資料庫名_db_yyyy mmddhhss.bak”格式為檔案名稱的檔案;

◆ 3個與資料庫完整備份相對應的操作過程的記錄報告檔案,即以“資料庫名”+“備份4_yyyymmddhhss.txt” 格式為檔案名稱的檔案;

◆ 48個交易記錄的差異備份,即2天各24個以“資料庫名_tlog_yyyymmddhhss.trn”格式為檔案名稱的檔案;

◆ 49個與交易記錄的差異備份對應的操作過程的記錄報告檔案,即以“資料庫名”+“備份6_yyyymmddhhss.txt” 格式為檔案名稱的檔案。

以上檔案名稱中,“資料庫名”為第三步的步驟一中選定的資料庫的名稱;“yyyymmddhhss”是時間戳記,其格式為:“yyyy”指“年”(4位元值),“mm”指“月”(2位元值,不足2位的補“0”),“dd”指“日”(2位元值,不足2位的補“0”),“hh”指“時”(2位元值,不足2位的補“0”),“ss”指“分”(2位元值,不足2位的補“0”)。

結束語

對於一個企業而言,日常運作中發生的各種業務所產生的所有資料,經過電腦不斷地日積月累,逐漸成為公司的一種財富和資本。利用電腦,可以便捷地統計分析部分或全部的資料,通過各種形式的反饋(表、表格等),給公司的決策層用於參考,便於為公司的今後決策提供指導和協助。正基於此,這些資料的價值隨著時間的延續正呈現出幾何速度的增長。因此我認為,對於資料的備份工作是網管員日常工作中最重要的工作之一。

通過這次“資料庫維護計劃”的建立,我略有感受:

1.經過這麼長時間的運用,我認為“資料庫維護計劃”仍然存在不足之處,雖說“資料庫維護計劃”功能很強大,但是它最終的結果是產生一項作業,由“SQL Server 2000 Agent”服務定期執行它來完成對資料庫的備份工作。這就要求“SQL Server 2000 Agent”服務能夠正常地“運行”。從多次安裝來看,在Windows 2000系統中“SQL Server 2000 Agent”服務能夠正常運行,而且能隨Windows 2000的啟動自動運行。但是在Window 98系統(包括第二版)中,卻不能正常運行。所以說,在Windows 98系統中即使依照上述步驟成功地建立了“資料庫維護計劃”,也會因為“SQL Server 2000 Agent”服務無法啟動而變得沒有任何作用。

2.之所以選擇“完全備份”,主要在於,在進行完全備份時,SQL Server將.mdf與其對應的.ldf檔案進行對比,刪除一些舊的、不必要的日誌,然後將.mdf和.ldf檔案進行合并、壓縮後一起儲存。

◆ 優點是:能最大可能地、完整地儲存資料庫。

◆ 缺點是:儲存量隨著資料庫的增大而增大,儲存時間也將隨著資料庫的增大而延長。

3.在建立“資料庫維護計劃”過程,各位讀者應該儘可能地去使用各種選項、功能,以便加深對“資料庫維護計劃”的理解和掌握。

4.雖然Internet上有許多第三方備份軟體和工具,但是大多數是共用版。由於擔心智慧財產權問題、病毒問題和其它問題,所以我沒有試用這些第三方軟體。這樣的話,它們的效能我就不清楚了。也許這些軟體的功能非常強大,能夠滿足更多的、更高的要求。在這裡我只是就Windows 2000和SQL Server 2000內建的“備份”工具和軟體進行一個比較。

_______________________________________________________________________
如果你想闡述自己的觀點,請在下面發言
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.