還原 master 資料庫 (Transact-SQL)

適用於:SQL Server

本文說明如何從完整資料庫備份中還原 master 資料庫。

警告

發生災害復原時,還原資料庫所在的執行個體 master 應該盡可能接近原始的完全相符項目。 此復原執行個體至少應為相同的版本、版本和修補程式層級,而且應該有相同的功能和相同的外部設定 (主機名稱、叢集成員資格等) 做為原始執行個體。 否則,可能會導致未定義 SQL Server 執行個體行為,出現功能支援不一致的狀況,而且不保證可行。

還原 master 資料庫

  1. 以單一使用者模式啟動伺服器執行個體。

    您可以使用 -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 資料庫損毀而無法啟動,您必須先重建系統資料庫。 如需詳細資訊,請參閱重建系統資料庫

  2. 從另一個命令提示字元視窗使用 SQLCMD 連接到SQL Server

    SQLCMD -S <instance> -E -d master
    
  3. 若要還原 master 的完整資料庫備份,請使用下列 RESTORE DATABASETransact-SQL 陳述式:

    RESTORE DATABASE master FROM  <backup_device>  WITH REPLACE
    

    即使有同名的資料庫,REPLACE 選項還是會指示 SQL Server 還原指定的資料庫。 現有的資料庫 (如果有的話) 會遭到刪除。 在單一使用者模式中,我們建議您在 sqlcmd 公用程式中輸入 RESTORE DATABASE 陳述式。 如需詳細資訊,請參閱 使用 sqlcmd 公用程式

    重要

    在還原 master 之後,SQL Server 的執行個體會關閉,並終止 sqlcmd 處理序。 在重新啟動伺服器執行個體之前,請移除單一使用者啟動參數。 如需詳細資訊,請參閱設定伺服器啟動選項 (SQL Server 組態管理員)

  4. 通常以服務的形式重新啟動伺服器執行個體,而不需使用任何啟動參數。

  5. 繼續進行其他復原步驟,例如還原其他資料庫、附加資料庫,以及更正使用者不符的項目。

範例

下列範例會在預設伺服器執行個體上還原 master 資料庫。 此範例假設伺服器執行個體已經在單一使用者模式中執行。 此範例會啟動 sqlcmd ,並執行 RESTORE DATABASE 陳述式,從磁碟裝置還原 master 的完整資料庫備份: Z:\SQLServerBackups\master.bak

注意

對於具名執行個體,sqlcmd 命令必須指定 -S<ComputerName>\<InstanceName> 選項。

C:\> sqlcmd  
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;  
2> GO  

另請參閱

完整資料庫還原 (簡單復原模式)
完整的資料庫還原 (完整復原模式)
針對孤立使用者進行疑難排解 (SQL Server)
資料庫卸離與附加 (SQL Server)
重建系統資料庫
Database Engine 服務啟動選項
SQL Server 組態管理員
系統資料庫的備份與還原 (SQL Server)
RESTORE (Transact-SQL)