如果master資料庫損毀,會嚴重影響SQL Server的運作,因為在master資料庫中紀
錄著SQL Server重要的系統資訊。這篇文章將跟大家說明如何復原master資料庫。
關於master資料在SQL Server 無敵手冊第四篇中有跟大家介紹過,相信大家應該對master資料庫已經有初步的了解,master資料庫中紀錄著SQL Server的重要資系統資訊,包含伺服器系統組態、使用者登入帳戶、使用者的資料庫組態與檔案位置等等...。
大家都知道要將重要資料庫進行備份,資料庫損毀時就可以由備份中還原,但是如果master資料庫損毀,您的SQL Server可能根本就無法啟動,此時您就無法依照一般還原程序將master資料庫還原,您必須利用下列步驟來還原master資料庫:
1.利用SQL Server的安裝檔(Setup.exe)將master資料庫重建。(此步驟是要讓您的SQL Server可以先正常執行)
2.已[單一使用者模式]來啟動SQL Server的執行個體。
3.使用您的備份檔案將master還原到您需求的時間點。
這樣重起SQL Server後就可以將master回到備份時的狀態,知道了上列步驟後,接下來我們就真對[master資料庫重建]與[master資料庫復原]作更進一步的介紹。
[master資料庫重建]
重建master資料庫主要是要解決SQL Server因為master資料庫損毀而無法正常啟動的問題,在SQL Server 2008 中您必須使用命令模式執行Setup.exe來重建master資料庫,除了在安裝光碟中您也可以在下列預設安裝目錄找到Setup.exe:
C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release
如下圖:
請利用下列語法在命令模式下執行Setup.exe:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts /SAPWD= Password
參數的說明如下:
/QUIET 或 /Q:安裝程式的執行不使用任何使用者互動畫面。
/ACTION:指定Setup程式要執行的動作,REBUILDDATABASE是指定安裝程式要重新建立系統資料庫。
/INSTANCENAME:這是 SQL Server 執行個體的名稱。若為預設執行個體,請輸入 MSSQLSERVER。若為具名執行個體,請使用 server_name\instance_name 格式來輸入名稱。
/SQLSYSADMINACCOUNTS:指定要加入至 sysadmin 固定伺服器角色的 Windows 群組或個別帳戶。指定多個帳戶時,請以空格隔開這些帳戶。例如,您可以輸入 Administrator將本機的Administrator加入。
/SAPWD:指定 SQL Server 的sa 帳戶的密碼。如果執行個體使用混合驗證 (SQL Server 和 Windows 驗證) 模式,這就是必要的參數。
執行完成後,您可以透過下列記錄檔案來檢視是否順利完成:
C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs\Summary.txt
重建後的master資料庫是一個全新的資料庫,萬一您的備份遺失或是太舊,您可以手動設定執行相關管理工作來回復相關設定。
[master資料庫復原]
復原master資料庫與復原其他資料庫不同,您必須先以[單一使用者模式]來執行SQL Server啟動執行個體,才能執行復原程序,復還步驟如下:
1.使用下列命令在命令模式執行SQL Server:
sqlservr.exe -m
執行畫面如下列紅色框框:
執行後看到下列訊息代表已經成功:
sqlservr.exe預設的位置在各執行個體的安裝目錄下的binn,預設目錄位置如下
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
如下圖:
2.接著執行sqlcmd登入到SQL Server,並執行下列RESTORE DATABASE 陳述式。
USE MSDB
GO
RESTORE DATABASE master
FROM disk='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak'
GO
此範例是使用backup檔案來還原,執行結果如下圖:
復原後會將SQL Server關閉,請重新啟動SQL Server即可完成復原動作。
現在您已經知道如還在SQL Server中復原master資料庫。
公司用sql2000的
記得上次死掉時
不能用這樣的方法去惡搞
要用rebuildm
Alexc大大講的沒錯,在SQL Server 2000的版本要使用rebuildm,不過因為我們在SQL Server 無敵手冊第二篇中有開宗明義說明在SQL Server 無敵手冊中,就以 SQL Server 2008 Enterprise (64 位元) x64 為主,所以就沒對SQL Server 2000的方法多作介紹囉!
Alexc大大講的沒錯,在SQL Server 2000的版本要使用rebuildm,不過因為我們在SQL Server 無敵手冊第二篇中有開宗明義說明在SQL Server 無敵手冊中,就以 SQL Server 2008 Enterprise (64 位元) x64 為主,所以就沒對SQL Server 2000的方法多作介紹囉!