SQL Server 系统数据库

图片

原文链接

SQL Server 系统数据库都非常简单且非常小,但数据库重要级别非常高,因为系统数据库是 SQL Server 中最重要的数据库。为什么是“最重要“呢?因为 SQL Server 将大部分配置信息存储在这些数据库中(除了将一些存储在注册表和少量ini/xml 配置文件中), SQL Server 需要它们处于健康状态才能保证运行。

那么,SQL Server 中的系统数据库有哪些呢?master,model,msdb,tempdb,resource 和 distribution (分发库可以说为伪系统数据库,因为只有在配置了复制时,才会看到此数据库)。下面,我们就了解下这些系统数据库是干什么的。

图片

master

 SQL Server 在服务启动时加载的第一个数据库。如果在启动此数据库时发现任何问题,整个 SQL Server 实例将关闭。master 数据库存储有关实例配置非常关键的信息,例如 CPU 信息、内存配置、其他 sp_configure 设置等。它存储实例上所有数据库的信息,存储登录信息和所有其他实例范围的对象信息,例如链接服务器、端点等…

model

这是模板数据库,可以说是最小的系统数据了。无论你在此数据库上更改了什么配置,你新创建的数据库都有相同的设置,新数据库以 model 为模板创建的。最典型的示例,你可用在开发环境将 model 数据库恢复模型设置为简单模式(simple),后续你创建的数据库,都将是简单模式的数据库。如果你在 model 数据库中创建任何对象(比如一张表),那么你新创建的数据库都将包含相同的对象。这有什么作用呢?你可以利用 model 数据库来进行标准化管理!

msdb

msdb 数据库是用来存储 SQL Agent 相关配置及日志信息的,你的所有代理作业、维护计划信息、备份/恢复事件、警报、DB 邮件信息,甚至 SSIS 包等等,都是记录在 msdb 中的。因此,当你有频繁的作业或其他相关操作时,要关注好 msdb 的大小。

tempdb

tempdb 可以说是最繁忙的系统数据库了,忽略 tempdb配置将严重影响 SQL Server 性能。顾名思义,这是一个临时数据库,所有临时对象都将在其中创建,游标使用 tempdb,行版本控制在 tempdb(SNAPSHOT ISOLATION)中完成,在线重建索引(sort_in_tempdb = on),内存溢出使用 Hash Join 和 Hash Recursion,甚至排序以及其他更多的东西都大量使用 tempdb。关于这个数据库有趣是,当重启 SQL Server 服务时,它将被完全“清除“并重新创建。所以,没必要对tempdb数据库进行备份。

systemresource

该数据库永远处于“隐身“模式,对用户是隐藏的,我们无法从 SSMS 中看到这个数据库。只有在文件系统才能看到这个数据库的数据文件(mssqlsystemresource.mdf)和日志文件(mssqlsystemresource.ldf)。它是一个包含 SQL Server 系统对象的只读数据库。在我们升级SQL补丁(SP/CU等)时,这个数据库也是非常重要,许多 DBA 常常忽略了在应用补丁之前进行备份!如果你想知道 systemresource 里面存储了什么,你可以将其拷贝一份进行数据库附加。可以看到,其存储了许多架构为 sys 和 information_schema 的系统的视图、存储过程、函数等对象。

图片

以上就是我们常见的几个系统数据库。既然系统数据库存储了那么重要的东西,系统数据库的备份恢复也应该作为数据库维护人员的灾难恢复策略。尤其是用户创建的服务器级别对象非常多的时候(即数据库之外的其他对象,如账号、链接服务器、作业等)。如果你忽略了这些系统库的备份,当出现了不可恢复的灾难时,你可能需要花更多的时间来修复,甚至无法修复。同样地,系统数据库也像用户数据库一样,定期进行一致性检查。

哪些系统数据库需要备份呢?master 数据库需要备份,它是最重要的数据库,可每日进行完整备份。model 数据库可选备份,因为这个数据库几乎没人改动,可以从其他实例上拷贝恢复,不过它占用空间也较小,还是推荐进行一起备份吧。msdb 数据库需要备份,像上面说明的,它存储了代理相关的信息和日志。tempdb 无法备份,也没必要备份,因为每次重启实例服务时都将重新创建。systemresource 安装补丁或升级前有必要备份,因为是系统对象且不能直接更改,内容和其他系统的一样。不过在安装补丁或升级时,可以的话进行备份是很好的习惯。只需拷贝其数据文件和日志文件到备份目录即可。通常文件目录位于路径 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值