备份和还原 第三篇:master 数据库的备份和还原

在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 还原模拟测试

master Database

Restore the master Database (Transact-SQL)

Start SQL Server in Single-User Mode

sqlcmd Utility

Use the sqlcmd Utility

上一篇:使用jmeter测试数据库性能


下一篇:第三篇-Django建立数据库各表之间的联系(下)