共用方式為


還原 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 語句Transact-SQL:

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    選項 REPLACE 會指示 SQL Server 還原指定的資料庫,即使已有相同名稱的資料庫也一樣。 現有的資料庫 (如果有的話) 會遭到刪除。 在單一使用者模式中,建議您在 RESTORE DATABASE輸入 語句。 如需詳細資訊,請參閱 使用 sqlcmd

    重要

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

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

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

範例

下列範例會在預設伺服器執行個體上還原 master 資料庫。 此範例假設伺服器執行個體已經在單一使用者模式中執行。 此範例會啟動 sqlcmd ,並執行 RESTORE DATABASE 語句,以從磁碟裝置還原 的完整資料庫備份 masterZ:\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