適用於:SQL Server
本文說明如何從完整資料庫備份中還原 master
資料庫。
警告
發生災害復原時,應將 master
資料庫恢復到的系統盡可能與原始系統完全相符。 此復原執行個體至少應具備與原始執行個體相同的版本、版次和修補程式層級,並應具備相同的功能選擇以及外部設定 (如主機名稱、叢集成員資格等)。 否則,可能會導致未定義的 SQL Server 實例行為,且功能支援不一致,且不保證可行。
還原 master
資料庫
以單一使用者模式啟動伺服器執行個體。
您可以使用
-m
或-f
啟動參數來啟動 SQL Server。 如需啟動參數的詳細資訊,請參閱 Database Engine 服務啟動選項。從命令提示字元執行下列命令,並確定您將
MSSQLXX.instance
取代為適當的資料夾名稱:cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn sqlservr -c -f -s <instance> -mSQLCMD
- 參數
-mSQLCMD
可確保只有 sqlcmd 可以連接到 SQL Server。 - 若為預設的執行個體名稱,請使用
-s MSSQLSERVER
-
-c
以應用程式的形式啟動SQL Server 略過 Service Control Manager 以縮短啟動時間
如果 SQL Server 執行個體因為
master
資料庫損毀而無法啟動,您必須先重建系統資料庫。 如需詳細資訊,請參閱重建系統資料庫。- 參數
從另一個命令提示字元視窗使用 sqlcmd 連線到 SQL Server:
sqlcmd -S <instance> -E -d master
若要還原
master
的完整資料庫備份,請使用下列RESTORE 語句Transact-SQL:RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
選項
REPLACE
會指示 SQL Server 還原指定的資料庫,即使已有相同名稱的資料庫也一樣。 現有的資料庫 (如果有的話) 會遭到刪除。 在單一使用者模式中,建議您在RESTORE DATABASE
輸入 語句。 如需詳細資訊,請參閱 使用 sqlcmd。重要
還原
master
後,SQL Server 實例會關閉並終止sqlcmd
程序。 在重新啟動伺服器執行個體之前,請移除單一使用者啟動參數。 如需詳細資訊,請參閱 SQL Server 組態管理員:設定伺服器啟動選項。通常以服務的形式重新啟動伺服器執行個體,而不需使用任何啟動參數。
繼續進行其他復原步驟,例如還原其他資料庫、附加資料庫,以及更正使用者不符的項目。
範例
下列範例會在預設伺服器執行個體上還原 master
資料庫。 此範例假設伺服器執行個體已經在單一使用者模式中執行。 此範例會啟動 sqlcmd ,並執行 RESTORE DATABASE
語句,以從磁碟裝置還原 的完整資料庫備份 master
: Z:\SQLServerBackups\master.bak
。
針對具名實例, sqlcmd 命令必須指定 -S<computer-name>\<instance-name>
選項。
C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO