SQL Server系統數據庫恢復

      在SQL Server2000數據庫系統中,有多個系統數據庫,如master,model,msdb,tempdb等。其中master數據庫是最重要的數據庫,存儲的是SQL Server系統的所有系統級別信息,包括磁盤空間,文件分配和使用、系統級的配置參數。同時還記錄了所有的登錄帳戶信息、初始化信息和其他數據庫信息。一旦master數據庫異常,會導致整個數據庫系統都無法正常功能。由於master數據庫的重要性,所以一般禁止用戶直接訪問,如果一定要修改,確保在修改前要做完整的數據備份。

 一:備份master數據庫
   1:master數據庫的備份場景:
    在下列情況下,應該備份master數據庫。
    創建或刪除用戶數據庫
    添加/刪除登錄帳戶或修改的數據庫級別的角色,從而影響了整個數據庫服務器的安全性
    更改了服務器級別的配置選項或數據庫配置選項
    簡單的說,也就是涉及到服務器級別的更改,都應該及時備份master。

           2:master數據庫備份方法
   默認情況下,master數據庫使用簡單恢復模型,對於master數據庫備份只需要使用完全備份。完全備份方法很簡單,不多描述。
        
  二:恢復master數據庫基本思路
         如果master數據庫損壞,SQL Server就不能啓動,且在事件管理器中可以查看到相應的master數據庫無法訪問的日誌信息。在這種情況下,就需要恢復master數據庫。
  恢復master數據庫的思路比較清晰,主要分爲如下步驟:
        1:重建全新master數據庫,以保證SQL Server服務器可以啓動。
        2:啓動SQL Server服務後,通過企業管理器或命令,將SQL Server服務器置於單用戶模式
  3:在單用戶模式下進行master數據庫恢復
  4:恢復完成後,將SQL Server實例重新置於多用戶模式。
 
 三:恢復master數據庫具體演示
     1:利用rebuildm.exe工具重建master數據庫
   該工具在安裝SQL Server實例時已經安裝到程序目錄下。默認路徑爲:
     C:\Program Files\Microsoft SQL Server\80\Tools\Binn
           運行該工具,在彈出的重建master窗口中,設置好正確的參數信息:SQL Server服務器,排序規則  以及SQL Server 2000安裝文件中master文件所在路徑。見下圖:
              
 
          注:重建過程會重建全部四個系統數據庫以及兩個示例數據庫northwind和pubs,接着對數據庫服務器進行配置。
    重建完成後,通過服務管理器或企業管理器啓動SQL Server服務器。
       需要注意的是:此時SQL Server數據庫中只有dbo角色相關的登錄帳戶,且sa帳戶密碼已經重置爲空。同時所有的用戶數據庫都不可見。

     2:將SQL Server服務器置於單用戶模式
         將SQL Server服務器設置爲單用戶模式方法很簡單:打開企業管理器,選擇服務器右鍵單擊,選擇“屬性”在“屬性配置”窗口“常規”選項框單擊“啓動參數”,在“啓動參數”中添加“-m”參數。如下圖:
            
 
     3:在單用戶模式下進行master數據庫恢復
   設置好單用戶模式後,重新啓動SQL Server實例,進入真正的master數據庫還原。還原方式可以通過企業管理器進行還原
            

   也可以通過查詢分析器運行T-SQL命令執行還原:
            
 
   注:使用企業管理器進行還原時,還原成功後可能會出現一些連接錯誤提示。建議使用查詢分析器來執行還原,可以避免出現錯誤提示。

 4:恢復完成後,將SQL Server實例重置於多用戶模式
          恢復完成後,重新啓動SQL Server實例,去除第2步設置的單用戶模式參數­-m。
  重新啓動SQL Server實例,打開企業管理器,可以看到所有的用戶數據庫已經可見,且安全性相關登錄帳戶也已經恢復!
 
        注:
          在恢復master數據庫時model和msdb數據庫也會被更建,
   所以master數據恢復完成後,應該立即還原model和msdb數據庫。
 
     五:其它系統數據庫的恢復
         對於其它系統數據庫,如model數據庫和msdb數據庫都是很重要的系統數據庫。model數據庫作爲所有新建的用戶數據庫和tempdb數據庫的樣板,任何新建數據庫默認結構都與model數據庫一樣。
  Msdb數據庫是SQLSERVER2000代理服務以及自動化作業使用的數據庫。
         這兩個數據庫異常也會影響SQL Server服務器正常工作。
         特別是model數據庫,是作爲所有新建數據庫的模板,如果model數據庫損壞也會導致SQL Server服務不能啓動,在這種情況下,也需要先重建master數據庫,然後再依次恢復master,model和msdb數據庫,恢復操作與恢復master數據庫操作相類似。
         稍有不同的是,msdb數據庫損壞不會導致SQL Server服務無法啓動,此時只需通過企業管理器進行恢復工作即可!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章