2011年9月19日 星期一

適用於 MS SQL 2005 的災難復原程序

原出處
--
使用 MS SQL 2000 的朋友,在升級到 MS SQL 2005 之後,都會發現按照以往的災難復原程序,都無法順利的啟動 MS SQL 單一模式,因此也就無法順利的復原 Master 資料庫,後面的一堆步驟也玩不下去了....

整個問題的原因,並不是 CA Protection Suites / BrightStor ARCserve Backup 不支援 MS SQL 2005,而是偉大的 Microsoft 自己改了 MS SQL 災難復原的遊戲方式,因此,各位朋友們又有功課要練習了....

如今 MS SQL 2005 不像是早先的 MS SQL 2000,可以在 master 資料庫不存在的情況下,透過單一模式來啟動 SQL Service 並還原master資料庫。MS SQL 2005 必須藉由原始安裝 MS SQL Server 2005 的 DVD 光碟片,以類似重裝 MS SQL 2005 的方式重新產生新的 master 資料庫實體,且在整個過程中,安裝光碟也會重新建立資源資料庫的相關檔案與設定。(如果後來接手的管理員,不曉得原先的設定參數,這時候就可能因為錯誤參數造成 SQL 的最佳化設定值跑掉了....)

按照微軟的步驟,整個災難復原程序都會變得很複雜,而且失敗率又高,有興趣的朋友可以參看後面所提「微軟的 MS SQL 2005 災難復原」步驟。
小弟比較 CA SQL Agent 在 MS SQL2000/2005 的備份機制,整理出新的災難復原步驟,這個方式提供更容易的備份與還原,而且成功率相當高喔!

「布萊德雷的 SQL 2005 + CA BAB 災難復原方法」
由於 SQL Agent 僅備份資料庫的「內容」,並不備份資料庫的「檔案」,因此,我們只要在離線模式下將 SQL 2005 的檔案進行備份即可。由於已經取得了核心的資料庫實體檔案,因此這樣的備份動作只需要一次即可(當然,如果可以多備份幾份,也可降低因儲存媒體遺失、損害所帶來的困擾)。

備份做法:
停止 MS SQL 2005 服務。
透過 CA Windows Client Agent 備份 SQL 資料庫目錄內的 master.mdf、mastlog.ldf、model.mdf、modellog.ldf 四個檔案。(或者直接勾選整個 SQL Server 資料夾進行備份)
啟動 MS SQL 2005 服務。

災難復原時:
透過 CA Windows Client Agent 還原 SQL 資料庫目錄內的 master.mdf、mastlog.ldf、model.mdf、modellog.ldf 四個檔案。(或者直接勾選整個 SQL Server 資料夾進行備份)
啟動 MS SQL 2005 單一模式服務,將資料回復至最新的紀錄。
引用:
進入單一模式服務的方式:
先停止 MSSQL Server 服務
並在啟動參數中加上 -m 參數後
再啟動 MS SQL Server 服務
如何,整個動作是不是簡單多了?但如果平常沒有做上述的備份動作,你就只能採用以下的災難復原方法囉!

「微軟的 MS SQL 2005 災難復原方法」
本方法適用於當災難發生時,且平時並未透過「布萊德雷的 SQL 2005 + CA BAB 災難復原方法」進行核心檔案的備份,此時將得拿出微軟原始安裝 MS SQL Server 2005 的 DVD 光碟片,參照以下的安裝參數,以透過類似重裝 MS SQL 2005 的方式重新產生新的 master 資料庫實體,並重新建立資源資料庫的相關檔案與設定。(可能造成最佳化設定值遺失的風險)
引用:
開啟 MS DOS 視窗下,執行以下參數來重建 Master 資料庫
(假設光碟機代碼為 D:\ )

D:\SQL Server x86\Servers> setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=P@ssw0rd SQLCOLLATION=CHINESE_TAIWAN_STROKE_CI_AS
以下就是重新建立master資料庫的參數說明(對照顏色區塊可方便閱讀):
D:\SQL Server x86\Servers => 為安裝檔案路徑。
/qb => 安裝過程中會顯示重要對話方塊與錯誤訊息的顯示,不可與 /qn 參數混用。
/qn => 安裝過程中不顯示對話視窗,不可與 /qb 參數混用。
INSTANCENAME => 若是預設執行個體,則後面的名稱就是=MSSQLSERVER,也可以自行指定命名新的執行個體名稱。
REINSTALL => 指定要重新安裝對象就是資料庫引擎。
REBUILDDATABASE=1 => 表示進行重建 master資料庫。
SAPWD => 指定使用混合模式驗證時,SQL 的 sa 密碼。
SQLCOLLATION => 設定SQL Server 執行個體定序。

執行的過程會檢查系統安裝的檔案是否足夠、設定資料庫引擎元件,過程中也會覆寫系統資料庫,最後就會重新產生新的master 資料庫檔案,此時我們再進入單一模式服務,透過 CA SQL Agent 來還原master 資料庫內容。

--
重建 SQL Server 2005 的 master 資料庫

沒有留言:

張貼留言