緊急恢復SQL Server主master數據庫
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本文介紹如何緊急恢復SQL Server主數據庫,這樣就不用再在SQL Server的主數據庫崩潰導致數據庫服務器停止工作的情況下不知所措了。 如果主數據庫發生故障,那么微軟的SQL Server可能會怦然倒下。看看如何面對這種事件,了解如何用企業管理器和查詢分析器修復主數據庫。 作為一名微軟SQL Server的管理員,您必須知道如何修復一個崩潰的主數據庫。主數據庫保存有您的登錄信息,以及最重要的、指向您所有數據庫的指針。如果沒有主數據庫,您就無法成功地啟動SQL Server。在本文里,我將向您介紹在發生崩潰的情況下如何修復主數據庫,并告訴您如何重建主數據庫,如果有必要的話。 制定預案 制定一個應對崩潰和/或主數據庫故障的預案十分重要。這將有助于您在碰到災難的情況下按照既定的方法進行處理,而不是迫于壓力倉促作出反應。我碰到過很多很容易就陷入驚慌的狀況,但是由于保持冷靜并按照正確的方法來處理問題,我最后成功地度過了所有的困境。 怎么才能知道您的主數據庫已經崩潰? 在正式開始討論碰到系統故障如何修復和重建的主數據庫之前,我們需要先了解如何辨別它已經崩潰了。要說明這一點,我會弄垮一個主數據庫,告訴您主數據庫崩潰會發生什么樣的癥狀。 現在讓我們假設您的公司碰到了電涌,造成SQL Server重啟。在重新啟動的時候,SQL Server卻沒有正常啟動。如果查看錯誤日志(圖A),您會看到主數據庫崩潰或者丟失。既然您知道需要查看什么信息,那就讓我們看看如何修復主數據庫。 圖A
修復您的主數據庫 修復主數據庫的第一步是使用“重建向導(Rebuild Wizard,Rebuildm.exe),它放在Program FilesMicrosoft SQL Server80ToolsBINN目錄下。現在就讓我們來看看重建向導是如何工作的。 雙擊Rebuildm.exe啟動圖B所示的對話框。 圖B
在這個對話框里,您可以指定數據庫服務器的修復設置,以及原始安裝的數據文件的位置。要讓這一過程更容易和更快,就要把x86目錄從SQL的光盤上復制到硬盤上,并把指向改到本地的副本。一旦驗證完了所有的信息,點擊“重建(Rebuild)”。然后系統就會提示您確認操作,如圖C所示。 圖C
點擊“確定(Yes)”。一旦重建過程完成,您會看到一條重建成功的消息。您現在就有了一個全新的主數據庫,準備好修復主數據庫了。 首先,打開命令行提示符,輸入Program FilesMicrosoft SQL ServerMSSQLBINN目錄下的sqlservr.exe –c –m命令,啟動單用戶模式下的SQL Server。結果如圖D所示。 圖D
在單用戶模式下啟動SQL Server之后,您可以利用備份文件修復主數據庫。您可以用“查詢分析器(Query Analyzer)”或者“SQL企業管理器(SQL Enterprise Manager)”來修復它。如果使用查詢分析器,您就要像圖E一樣運行查詢。 圖E
如果使用企業服務器,就要右擊主數據庫,選擇“所有任務|修復數據庫(All Tasks | Restore Database)”,瀏覽到您設備所在的位置,如圖F所示。點擊兩次“OK”,您就可以成功地修復主數據庫了。 圖F
修復完主數據庫,退出單用戶模式,在正常的操作模式下重新啟動SQL Server。 如果由于某種原因您的修復操作無法成功完成,那么您可以試試別的方法。只用簡單地重建主數據庫并添加駐留在數據目錄下的所有數據庫就可以了。您可以用企業管理器或者查詢分析器來添加數據庫。在企業管理器里,右擊“數據庫(Databases)”,選擇“添加數據庫(Attach Database)”,如圖G所示。圖G
結束語 既然已經知道了如何在碰到災難的情況下成功地重建主數據庫,那么您可以把這些技術增加到災難修復預案中去。這樣的話,您就不用
SQL Server 中4個系統數據庫,Master、Model、Msdb、Tempdb。(1)Master數據庫是SQL Server系統最重要的數據庫,它記錄了SQL Server系統的所有系統信息。這些系統信息包括所有的登錄信息、系統設置信息、SQL Server的初始化信息和其他系統數據庫及用戶數據庫的相關信息。因此,如果 master 數據庫不可用,則 SQL Server 無法啟動。在 SQL Server 2005 中,系統對象不再存儲在 master 數據庫中,而是存儲在 Resource 數據庫中。 (2)model 數據庫用作在 SQL Server 實例上創建的所有數據庫的模板。因為每次啟動 SQL Server 時都會創建 tempdb,所以 model 數據庫必須始終存在于 SQL Server 系統中。當發出 CREATE DATABASE(創建數據庫)語句時,將通過復制 model 數據庫中的內容來創建數據庫的第一部分,然后用空頁填充新數據庫的剩余部分。 如果修改 model 數據庫,之后創建的所有數據庫都將繼承這些修改。例如,可以設置權限或數據庫選項或者添加對象,例如,表、函數或存儲過程。 (3)Msdb數據庫是代理服務數據庫,為其報警、任務調度和記錄操作員的操作提供存儲空間。 (4)Tempdb是一個臨時數據庫,它為所有的臨時表、臨時存儲過程及其他臨時操作提供存儲空間。Tempdb數據庫由整個系統的所有數據庫使用,不管用戶使用哪個數據庫,他們所建立的所有臨時表和存儲過程都存儲在tempdb上。SQL Server每次啟動時,tempdb數據庫被重新建立。當用戶與SQL Server斷開連接時,其臨時表和存儲過程自動被刪除。 該文章在 2011/2/28 11:51:08 編輯過 |
關鍵字查詢
相關文章
正在查詢... |