在SQL Server 中,master 資料庫記錄系統級別的元數據,例如,logon accounts, endpoints, linked servers, and system configuration settings,同時,master 資料庫記錄其他資料庫及其文件的位置,因此,在啟動S ...
在SQL Server 中,master 資料庫記錄系統級別的元數據,例如,logon accounts, endpoints, linked servers, and system configuration settings,同時,master 資料庫記錄其他資料庫及其文件的位置,因此,在啟動SQL Server實例時,master資料庫必須最先啟動。master 資料庫是如此重要,必須頻繁地備份master資料庫。Only full database backups of master can be created.
一,備份master資料庫
master資料庫只能做full backup,不能做差異備份和事務日誌備份,原因是master只能處於Recovered 狀態,不能處於NoRecovery(recovering)狀態。
backup database [master] to disk = 'D:\TestDBBackupFolder\master_1.bak' --specify new backup file with compression, format, init, skip, stats=5
二,還原master資料庫
master資料庫必須在單用戶模式下還原,因此,在還原master數據之前,必須先停止SQL Server的所有服務(Service),包括MSSQLServer、Agent、Broser、Fulltext等,避免其競爭訪問MSSQLService,然後,以管理員打開命令行;
step1,使用命令行net start,以single user 模式啟動SQL Server實例的Service:MSSQLServer
參數/m“sqlcmd”:表示以單用戶(Single User)模式啟動Service,並且,只允許sqlcmd客戶端訪問service;
net start MSSQLSERVER /m"sqlcmd"
step2,使用sqlcmd登錄到SQL Server實例
-E:指定sqlcmd以信任連接(trusted connection)方式登錄Service,參數-E是預設的;
-S:指定sqlcmd連接的Server-Name
sqlcmd -E -S server-name
step3,使用sqlcmd還原master資料庫,由於SQL Server實例中已經存在master資料庫,必須指定replace選項,將原有的master資料庫替換掉;
restore database master from disk='D:\DBBackup\master.bak' with replace; go
master數據還原完成之後,啟動SQL Server實例的Service,就可以正常訪問SQL Server實例。
參考文檔:
SqlServer系統資料庫還原(三)系統資料庫master-msdb-model 還原模擬測試
Restore the master Database (Transact-SQL)
Start SQL Server in Single-User Mode