SQL master Database Rebuild and Restore(master資料庫重建跟還原)
緣由:master是SQL的重要核心DB,一旦損毀就是大災難的開始。看了『SQL Server2012管理實戰』
跟對岸的『SQL Server 2012實施與管理實戰指南』這兩本書都對master資料庫的還原有詳細的說明,
雖然說沒有人願意遇見這樣的災難發生,但還原master 資料庫的演練是一定要做的。
環境:一台SQL Server 2008 R2。
流程:
步驟一:備份很重要,一旦發生災難,備份檔就是你的救星。這一個LAB我們先對master進行資料庫的備份。
如下圖紅色圈選處,備份master時已有3個Database存在。
步驟二:我們模擬因為master已經損毀造成SQL無法順利啟動,因需要先重建master資料庫。
在此我們必須使用SQL Server的安裝程式Setup.exe來做重建的動作。該檔案可以從光碟片中取得,
也可以在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2目錄下找到。
重建的語法如下:
Setup.exe /QUIET /INSTANCENAME=mssqlserver /ACTION=rebuilddatabase /SQLSYSADMINACCOUNTS=administrators /SAPWD=*****
參數說明:
/QUIET:Setup.exe工具程式不呈現互動畫面,直接完成指令工作。
/INSTANCENAME:目標執行個體名稱,預設執行個體設為MSSQLSERVER。
/ACTION:要Setup.exe執行的工作,此處rebuilddatabase代表要建立系統資料庫。
/SQLSYSADMINACCOUNTS:管理SQL Server執行個體的Windows帳戶。
/SAPWD:若SQL Server的驗證方式採用混合模式,則透過此一參數給SA帳戶密碼。
(資料來源:SQL Server2012管理實戰)
重建過程需要花一點時間等待,千萬不要以為當機了(如下圖所示)。
步驟三:從下圖中我們可以看見當master完成重建後,原來存在的Database跟login都消失了。
步驟四:還原master前請先將所有的SQL相關服務先停掉(如下圖)。
步驟五:欲還原master資料庫需先以『單一使用者模式』啟動SQL Server,因此執行sqlservr.exe時,需加入-m的參數,
語法如下:sqlservr.exe –s mssqlserver –m
(預設路徑C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn)
步驟六:完成步驟五後,我們另外開啟另一個『命令提示字元』的視窗,利用sqlcmd來還原master資料庫。
語法如下:
Use msdb
go
Restore database master from disk=’檔案’
go
完成上面的指令,我們可以看見如下圖的畫面,master資料庫已經還原成功。
注意:master資料庫還原完成後SQL的服務會自動停止,萬一還原中發生問題導致失敗
而想停止sqlserver該怎麼停呢,回到剛剛執行sqlservr.exe的那一個視窗,然後按下Ctrl+C
,此時畫面會出現訊息問你是否要shutdown SQL,按下Y即可跳出-m模式。
步驟七:重啟服務。
步驟八:Database跟login等資料都回來嘍,我們的實驗也完成了。
好書推薦
我是ROCK
rockchang@mails.fju.edu.tw