■ 河南 劉景云
編者按:DPM可以利用VSS服務從數據庫級,為SQL Server提供數據備份操作,可以更好的備份和恢復復雜的數據庫結構。利用SQL Server上的VSS服務,DPM還可以瞬間為數據庫創建快照,并對快照進行備份,來實現數據的一致性,可以有效避免在恢復數據時,出現的數據庫損壞或者數據庫結構需要重建等問題。在群集環境中,如果發生了異常的故障轉移,DPM會智能提醒管理員執行一致性檢查,來保證數據的一致性。
DPM備份SQL Server的要點
這里以使用DPM 2012 R2和SQL Server 2012為例進行說明。在使用DPM保護SQL Server時,需要對所有的 Database,SQL Server安裝目錄,System State等對象進行備份。如果SQL Server安 裝 在Windows Server 2003等老系統上,需要使用DPM 2007中提供的SRT保護系統狀態。對于tempdb數據庫來說,是不需要進行備份的。因為其是用來保存SQL Server的所有臨時數據,可以為復雜的查詢緩存各種結果集。
當SQL Server重新啟動時,會創建新的tempdb數據庫。不管創建什么數據庫,都是使用Model數據庫作為模版,如果其出現問題,會導致無法創建新的數據庫的問題。因此,每當對該數據庫進行修改后,對其執行一次備份即可。在SQL Server群集環境中,主要對每個節點上的SQL安裝目錄進行備份,注意需要排除數據庫存儲路徑。對于群集的仲裁盤是不需要進行備份的。
SQL Server的備份和恢復模式
對于SQL Server來說,提供了完整備份、差異備份、事務日志備份等模式,對于完整備份來說,指的是對整個數據庫,部分事務日志,數據庫結構和文件結構的備份。
對于差異備份來說,指的是對上一次完整備份之后所有的更改的數據進行備份。
對于事務日志備份來說,用來記錄數據庫的所有改變。其又分為備份日志和截斷事務日志兩類,前者備份的目標為從上一次成功的事務日志備份到當前事務日志額尾部,后者指到事務日志活動部分的開始,丟棄不活動的部分,可以有效降低事務日志磁盤空間的占用率。
對于數據恢復來說,SQL Server支持簡單模式,大容量日志模式和完整模式。
對于簡單模式來說,適用于不常更新的小型數據庫,不支持日志備份,會丟失最后一次備份后的數據更改,不能恢復到即時點。對于大容量日志模式來說,值進行最小化的日志備份,可能會有數據的丟失,不能夠恢復到即時點,一般用于臨時海量數據的導入。
對于完整模式來說,可以支持日志備份,不會丟失數據,能夠恢復到即時點,對于生產型數據庫來說,一般需要使用完整恢復模式。當需要執行大容量日志記錄操作時,可以切換到大容量日志恢復模式。如果有多個備份需要還原的話,除了最后一個之外的所有備份在還原時必須中設置為“Restore with norecovery”方式,不對數據庫進行任何操作,不回滾未提交的事務,可以還原其他事務日志。
備份SQL Server的注意事項
在 使 用DPM對SQL Server進行備份時,需要考慮到很多因素。例如,當SQL Server數據進行了升級之后,需要對停止對之前老版本數據庫的保護,同時選擇保留數據選項。
在升級之后的SQL Server服務器上安裝DPM代理程序,并啟動SQL Server的編寫器服務,因為SQL Server備份是依賴于編寫器服務的。之后將升級后的服務器上數據庫添加到新保護組中。例如,在DPM控制臺左下角選擇“保護”項,在左側的“所有保護組”欄中選擇對應的保護組,在右側的保護組列表中選擇舊的SQL Server服務器,在其右鍵菜單上點擊“停止成員保護”項,在打開的窗口(如圖1)中不選擇“刪除磁盤上的副本”項,點擊確定按鈕停止保護。

圖1 停止成員保護窗口
在保護組的右鍵菜單上點擊“修改保護組”項,在向導界面中將升級后的SQL Server服務器添加進來。
注意,在升級后的服務器上 執 行“services.mac” 程序,在服務管理器中選擇“SQL Server VSS Writer”項,確保該服務處于啟動狀態,該服務提供用于通過Windows VSS基礎結構備份/還原Microsoft SQL Server的接口。如果目標SQL Server服務器遷移到了新的域環境中,那么需要對遷移后的服務器進行全新的數據保護。
在DPM保護組中刪除原有域的成員,對副本和恢復點數據進行保留,并對該服務器上的DPM代理程序進行強制卸載,之后對遷移到新域中的SQL Server重新安裝代理,將該機上的數據添加到保護組。
當重命名了SQL Server之后,也需要先從保護組中刪除原有主機名稱的數據源,之后針對新名稱的主機進行數據保護。以上操作實現起來很繁瑣,所以建議不要輕易更改受保護的主機的域或者重命令主機名。
這是因為對于DPM 2012來說,是利用計算機名作為副本恢復點,以及DPM數據庫條目(包括報表數據庫條目)的唯一標識符。
上面已經談到,當在恢復SQL Server時,可以使用三種模式。當將SQL Server數據庫添加到保護組時,DPM將檢測數據庫所使用的恢復模式類型。如果檢測到使用的是簡單恢復模式,則不允許進行日志備份和增量備份。只有使用完整備份和大容量日志恢復模式,才可以執行日志備份。對于使用完整或大容量日志恢復模式的數據庫來說,當DPM對其進行保護時,會在受保護的SQL Server上創建一個目錄。
該目錄位于受保護數據庫的第一個日志文件所在的路徑下。在使用DPM進行SQL Server日志備份和還原過程中,將使用此目錄作為日志的臨時存儲。如果該目錄缺失,DPM將重新創建該目錄。如果將受保護的數據庫的恢復模式從完整或者大容量日志更改為簡單模式后,快速完整備份可以繼續進行,但是增量備份將失敗。在這種情況下,具體操作是先在DPM上停止對目標數據庫的保護,同時選擇保留副本選項。之后將SQL Server數據庫的恢復模式更改為簡單模式,然后將數據添加到保護組。
在為數據庫配置日志傳送或者將數據庫更改為只讀狀態前,也需要停止對數據庫的保護。在對數據庫進行更改后,需要重新配置對數據庫的保護。當SQL Server群集中的磁盤空間不夠,對其進行磁盤替換來提升容量,或者磁盤損壞需要更換時,如果磁盤包含DPM所保護的SQL Server的數據,那么對于更換的新磁盤來說,需要為其分配與之前相同的盤符,然后使用DPM將受保護的數據恢復到新磁盤。
如果僅僅是將SQL Server數據庫遷移到新的磁盤上,那么只需將原有磁盤下線,將新磁盤賦予原有的盤符,DPM就可以自動對其識別。
在使用SQL Server時,可能會將新的數據庫添加到數據庫實例中,DPM允許使用SQL Server實例自動保護來保護新添加的數據庫。DPM可以自動確定和保護添加到要自動保護的SQL Server實例中的數據庫,可以使用“cmdlet Start-AutoProtection”命令,來強制DPM立即檢查是否有新數據庫加入并對其進行保護。
當更改受保護的數據庫關聯的路徑時,備份操作將失敗。為此需要從保護組中刪除數據庫,然后將此數據庫重新添加都保護組中,并對保護組的這一更改進行一致性檢查,當一致性檢查通過后,才可以進行正常的保護作業。如果對SQL Server數據庫進行重命名操作,那么必須將采用新名稱的數據庫添加到保護組中,之后將保護組中舊名稱的數據庫刪除,才可以對新的數據源進行保護。
對于DPM來說,是可以支持SQL Server的并行備份作業的。即允許對同一保護組中的數據源進行并行備份來優化網絡使用。對于SQL Server群集來說,如果將新的服務器添加進來,DPM將發出警報,提示在新群集結點上安裝保護代理,否則的話會出現保護失敗的情況,但從群集中刪除某臺服務器,DPM將自動檢測到目標節點已經離開群集,并且會顯示其與群集分離,在該服務器上沒有可保護的數據。對于SQL Server鏡像來說,必須在鏡像的兩臺服務器上同時安裝保護代理,不要在同一臺主機上對數據庫進行鏡像。
安裝DPM代理保護
在對于SQL Server進行備份之前,需要在SQL Server服務器上安裝DPM代理和WSB備份組件。對于代理來說,可以使用自動推送或者手動安裝的方式。
例如,對于后者來說,可以將DPM 2012安裝盤中的“DPMAgentInstall_x64.exe”文件復制到SQL服務器上。運行該安裝文件,之后切換到DPM代理程序安裝路徑中的“bin”目錄中,執 行“SetDpmServer.exe-dpmservername dpmser.xxx.com”命 令,指 定 DMP 2012服務器名稱。

圖2 配置代理賬戶權限
對于SQL Server 2012來說,當安裝了DPM代理后,在Microsoft SQL Server Management Studio中打開打開目標數據庫實例,選擇“安全性”-“登錄名”項,會在其中顯示“NT SERVERDPMRA”對象,在其右擊菜單上點擊“屬性”項,在打開窗口(如圖2)左側選擇“服務器角色”項,在右側選擇“public”和“sysadmin”角色,讓保護代理擁有所需的權限。
否則,在使用DPM進行備份時,會出現“保護代理在SQL Server實例上沒有sysadmin權限”的報錯信息。
如果沒有該賬戶,可以在系統中創建“DPMRA”賬戶,之后在“安全性”-“登錄名”項的右鍵菜單上點擊“新建登錄名”項,選擇“Windows身份驗證”項,導入上述“DPMRA”賬戶即可。
也可以先在Windows中執 行“net user DPMRA p@ssword /add” 命 令, 創建“DPMRA”賬 戶,之 后 在在Microsoft SQL Server Management Studio中 執行“Create login [xxxDPMRA] from Windows”或者“Exec sp_grantLogin [xxxDPMRA]”命令,來創建上述登錄名,其中的“XXX”為SQL Server服務器的名稱。
使用DPM保護SQL Server數據庫
在DPM管理控制臺左下角選擇“保護”項,在右側選擇保護組,在其右鍵菜單上點擊“修改保護組”項,在向導窗口中選擇目標SQL Server服務器,在其中選擇需保護的數據庫,點擊下一步按鈕,配置所需的保持期,同步頻率,一致性檢測項目,文件的恢復點等參數。點擊“更新組”按鈕,執行數據備份操作。之后在保護組中選擇該SQL Server保護對象,在其右鍵菜單上點擊“執行一次性檢查”項,進行初始化同步。之后可以根據需要,在該菜單中點擊“創建恢復點”項,來創建備份項目。
注意,DPM提供了增量同步和帶有一致性檢查的同步兩種同步方式。
對于后者來說,是DPM用來檢查和更正受保護數據源及其副本之間的不一致的過程。作為同步過程的一部分,一致性檢查執行逐個數據塊的驗證,來確保副本中的所有數據與受保護的數據保持一致。此過程比增量同步慢,因為其要比較副本上的所有數據,不是只將數據更改應用到副本。如果選擇了在副本不一致時自動執行一致性檢查的項目,或為保護組設置了日常一致性檢查,那么DPM會自動啟動一致性檢查并將其作為日常任務完成。
對于保持期來說,可以讓數據處于可恢復狀態的持續時間。DPM會在保持期中指定的持續時間內保留恢復點,副本不一致的任何一天都不會計入保持期。保持期最長時間始終為64天,對于不同的數據源來說,可用的最大恢復點數量是不同的,例如對于SQL Server來說,每天最多可以創建96個恢復點,最多在448天進行512個快速完整備份。也就是說,最多每天可每隔15分鐘創建一恢復點。最多可在448天內創建43008個恢復點。
快速完整備份是一種同步類型,可以讓保護代理傳輸自上次快速完整備份后,以及自上次執行一致性檢查后已經更改的所有塊的快照。在初次創建副本后,可進行首次快速完整備份。快速完整備份操作對于性能和時間的影響要低于完整備份,因為其使用DPM的篩選器技術來識別已更改的塊,僅傳輸自上次快速完整備份后更改的塊。
恢復SQL Server 數據庫
在執行恢復操作時,在DPM控制臺左下角選擇“恢復”項,在左側的“可恢復的數據”欄中選擇目標SQL Server服務器下的所需數據庫,在右側的“恢復時間”列表中選擇具體的時間點,在“路徑”列表中選擇所需的恢復項目,在其右鍵菜單上點擊“恢復”項,在向導界面(如圖4)中選擇恢復的類型,如果選擇“恢復到SQL Server的原始實例”項,在下一步窗口中選擇具體的恢復選項。
如果有多個備份需要還原的話(例如采用了類似于完整+差異+事務日志備份方式),那么除了最后一個備份之外的所有備份在還原時,需要選擇“是數據庫保持不可操作性狀態,但能夠還原其他事務日志”項。當恢復最后一個備份時,需要選擇“是數據庫保持可操作性狀態”項。點擊下一步按鈕,其余選項保持默認,點擊恢復按鈕,執行數據恢復操作。如果選擇“恢復到任何SQL Server實例”項,在下一步窗口點擊瀏覽按鈕,選擇所需的實例名稱,并指定數據庫文件位置,之后執行恢復操作即可。如果選擇“復制到網絡文件夾”項,之后選擇目標網絡路徑,將其恢復到該共享路徑中。