合 SQL Server 系统数据库恢复
Tags: MSSQLSQL Server备份恢复整理自官网系统数据库
概述
SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要。每次进行大量更新后,都必须备份多个系统数据库。必须备份的系统数据库包括 msdb、master 和 model。如果有任何数据库在服务器实例上使用了复制,则还必须备份 distribution 系统数据库。备份这些系统数据库,就可以在发生系统故障(例如硬盘丢失)时还原和恢复 SQL Server 系统。
系统数据库说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ----1.resource /* 包含SQLServer运行所需的关键系统表、元数、系统存储过程,它只包含系统相关的信息不包含用户相关的信息,在安装补丁的过程中将更改该数据库 */ SELECT SERVERPROPERTY('ResourceVersion'),--返回数据库的最新版本 SERVERPROPERTY('ResourceLastUpdateDateTime'),--返回数据库的最后升级时间 SERVERPROPERTY('ProductUpdateReference')--返回升级的补丁信息 ----2.master /* 包含数据库相关配置、登录信息、实例相关配置信息 */ ----3.tempdb /* 存储用户创建的临时对象(临时表、表变量等)、数据库引擎所需的临时对象、行版本信息等, tempdb数据库性能非常重要如果条件可以的话可以将其配置到当地的存储磁盘下, ssd最佳。每次重启时tempdb库会重建。 */ ----4.model /* 所有在实例上面新建的数据库都会参考模板数据库的相关配置进行创建(还原的数据库除外), 新建的数据库相当于是copy一份model数据库的副本,包括model数据库的 数据库属性和数据库中创建的对象都会复制到新建的数据库中。 */ ----5.msdb /* 包含SQL Server代理(作业、操作员、报警、策略以及作业历史的全部信息)、日志传输、SSIS、备份还原信息等操作信息。 */ |
单用户启动实例
方法1:在配置管理器中,右键实例在启动参数中添加-m(注意是小写的m),重新启动服务,处理完之后记得把-m参数去除重新启动服务。
方法2:在cmd中,使用net start mssqlserver /m,首先先停止所有相关的服务.
保持此窗口的情况下,数据库实例是无法进行连接登入的,所有出来完之后需要再次重启服务,重启的时候把/m参数去除。
方法3:在cmd中先定位到数据库安装目录“Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn”,输入sqlservr.exe –c –m,然后打开msms直接点新建查询使用管理员用户进入。
补充:配置管理员专用链接
运行输入cmd
输入Sqlcmd -A -S 127.0.0.1 或者Sqlcmd -A -S IP 或者Sqlcmd -A -S 机器名
如果是命名实例那么要在后面加上实例名:Sqlcmd -A -S 机器名\实例名
通过新建查询连接(文件-新建-数据库引擎查询)
ADMIN:IP或者ADMIN:127.0.0.1或者ADMIN:机器名
常用查询语句
1 2 3 4 5 6 7 | select * from sys.dm_exec_requests SELECT * from sysprocesses select * from sys.dm_os_memory_cache_counters select * from sys.dm_exec_sessions |
还原master数据库
还原master的数据库必须在单用户启动实例,然后使用管理员用户进行还原。这也是文章前面讲单用户启动实例的目的
使用方法1和方法3启动实例之后,不要用往常登入的方式登入SQL管理工具,而是之间点击新建查询或者点击文件菜单-新建-数据库引擎查询,然后输入管理员权限的用户进入,接下来就是还原数据库了,还原语句很简单例如: