SQL Server 系統資料庫恢復

發表於2015-03-19

系統資料庫說明 (在新視窗檢視原圖)

 

單使用者啟動例項

方法1:在配置管理器中,右鍵例項在啟動引數中新增-m(注意是小寫的m),重新啟動服務,處理完之後記得把-m引數去除重新啟動服務。

方法2:在cmd中,使用net start mssqlserver /m,首先先停止所有相關的服務.

保持此視窗的情況下,資料庫例項是無法進行連線登入的,所有出來完之後需要再次重啟服務,重啟的時候把/m引數去除。

方法3:在cmd中先定位到資料庫安裝目錄“Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn”,輸入sqlservr.exe –c –m,然後開啟msms直接點新建查詢使用管理員使用者進入。

 

補充:配置管理員專用連結

執行輸入cmd

輸入Sqlcmd –A –S 127.0.0.1 或者Sqlcmd –A –S IP 或者Sqlcmd –A –S 機器名

通過新建查詢連線

ADMIN:IP或者ADMIN:127.0.0.1或者ADMIN:機器名

常用查詢語句

 

還原master資料庫

還原master的資料庫必須在單使用者啟動例項,然後使用管理員使用者進行還原。這也是文章前面講單使用者啟動例項的目的

使用方法1和方法3啟動例項之後,不要用往常登入的方式登入SQL管理工具,而是之間點選新建查詢或者點選檔案選單-新建-資料庫引擎查詢,然後輸入管理員許可權的使用者進入,接下來就是還原資料庫了,還原語句很簡單例如:

方法2有一個要注意的地方就是,在單使用者啟動例項之後進入sqlcmd工具,執行use master之後每一步記得加上go,否則一直是游標閃動,還有方法2只能還原master資料庫無法還原其他資料庫。

還原完之後再以正常的方式重新啟動服務就好。

注意:如果重新生成master資料庫之後(這裡的重新生成和還原備份是不一樣的,如果是還原最新的備份是不用再重新還原msdb和model資料庫),一定要重新還原msdb和model資料庫。
 

還原msdb資料庫

還原 model 或 msdb 資料庫與對使用者資料庫執行完整的資料庫還原相同。不能還原使用者正在訪問的資料庫。如果 SQL Server 代理正在執行,它可以訪問 msdb 資料庫。因此,在還原 msdb 之前,請先停止 SQL Server 代理。

msdb資料庫需要在單使用者模式下進行還原,這裡說的單使用者跟前面的master的單使用者啟動例項不一樣,這裡的單使用者只是獲取msdb資料庫的單獨訪問許可權,所以可以用語句將資料庫設定成單使用者模式然後執行還原。

 

還原model資料庫

還原model資料庫與還原使用者資料庫的方法一樣,這裡就不做介紹。
 

還原Resource資料庫

這個系統資料庫無法進行備份還原,只能對檔案進行備份;2008r2版本的sql的資料檔案和日誌檔案在“D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn”路徑下。
 

備份還原複製資料庫

複製支援將複製的資料庫還原到從中建立備份的同一伺服器和資料庫。 如果將複製資料庫的備份還原到其他伺服器或資料庫,則無法保留複製設定。 在這種情況下,您必須在還原備份後重新建立所有釋出和訂閱(如果正在使用日誌傳送,則可以將複製資料庫還原到備用伺服器)。

應定期備份複製資料庫及其關聯絡統資料庫。 備份下列資料庫:

  • 釋出伺服器上的釋出資料庫
  • 分發伺服器上的分發資料庫
  • 各個訂閱伺服器上的訂閱資料庫

釋出伺服器、分發伺服器和所有訂閱伺服器上的 master 和 msdb 系統資料庫。 當備份這些資料庫中的一個資料庫或相關的複製資料庫時,應同時備份這些資料庫。 例如,應在備份釋出資料庫的同時備份釋出伺服器上的 master 和 msdb 資料庫。 如果還原發布資料庫,請確保 master 和 msdb 資料庫在複製配置和設定方面與釋出資料庫保持一致。
可以參照:https://msdn.microsoft.com/zh-cn/library/ms152560.aspx
 

總結

總之系統資料庫對於例項是非常重要的,所以備份計劃中一定不能少了系統資料庫的備份。

如果文章對大家有幫助,希望大家能給個推薦,謝謝!!!

相關文章