关于sqlserver的系统数据库
(master,msdb,model,resource,。。。
所谓的系统数据库就是系统⾃⾝所有的数据库,在每⼀个sqlserver安装后会有的数据库。下⾯我们对这些系统数据库的作⽤做⼀下解释。下⾯⼀张图
下⾯⼀个⼀个来看
select * from sys.databases
master数据库:
记录了所有数据库的系统信息,系统对象不再存储到master数据库当中,⽽是转存到了resource数据库当中,此外,master 数据库还记录了所有其他数据库的存在、数据库⽂件的位置以及 SQL Server 的初始化信息。 因此,如果 master数据库不可⽤,则 SQL Server ⽆法启动。
对于master数据库有以下的建议:
不要设置trustworthy设置为ON;
要有⼀个master数据库备份,并且保证是可⽤的;
最好不要在master数据库当中创建数据库实体
如果master不可⽤,我们可以有以下的两种⽅式区解决这个问题:还原master数据库或者重新⽣成master数据库
model数据库:
model 数据库⽤作在 SQL Server 实例上创建的所有数据库的模板。 因为每次启动SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。model数据库的全部内容(包括数据库选项)都会被复制到新的数据库。 启动期间,也可使
sqlserver备份表语句⽤ model 数据库的某些设置创建新的 tempdb,因此 model 数据库必须始终存在于 SQL Server 系统中。
MSDB数据库:
SQL Server 代理使⽤MSDB数据库来计划警报和作业,SQL Server Management Studio、Service Broker 和数据库邮件等其他功能也使⽤该数据库。
SQL Server 在MSDB中的表中⾃动保留⼀份完整的联机备份与还原历史记录。 这些信息包括执⾏备份⼀⽅的名称、备份时间和⽤来存储备份的设备或⽂件。 SQL Server Management Studio 利⽤这些信息来提出计划,以还原数据库和应⽤任何事务⽇志备份。 将会记录有关所有数据库的备份事件,即使它们是由⾃定义应⽤程序或第三⽅⼯具创建的.
RESOURCE数据库:
Resource 数据库为只读数据库,它包含了 SQL Server 中的所有系统对象。 SQL Server 系统对象(例如 sys.objects)在物理上保留在 Resource 数据库中,但在逻辑上显⽰在每个数据库的 sys 架构中。 Resource 数据库不包含⽤户数据或⽤户元数据。
Resource 数据库⽀持更为轻松快捷地升级到新的 SQL Server 版本。 在早期版本的 SQL Server 中,进⾏升级需要删除和创建系统对象。 由于 Resource 数据库⽂件包含所有系统对象,因此,现在仅通过将单个 Resource 数据库⽂件复制到本地服务器便可完成升级。resource数这个数据库是不能够进⾏备份的,通过将 mssqlsystemresource.mdf ⽂件作为⼆进制 (.EXE) ⽂件⽽不是作为数据库⽂件,可以执⾏您⾃⼰的基于⽂件的备份或基于磁盘的备份,但是不能使⽤ SQL Server 还原所做的备份。 只
能⼿动还原mssqlsystemresource.mdf 的备份副本,并且必须谨慎,不要使⽤过时版本或可能不安全的版本覆盖当前的 Resource 数据库。TEMPDB数据库:
中的操作是最⼩⽇志记录操作。 这将使事务产⽣回滚。 每次启动 SQL Server 时都会重新创建TEMPDB,从⽽在系统启动时总是保持⼀个⼲净的数据库副本。 在断开联接时会⾃动删除临时表和存储过程,并且在系统关闭后没有活动连接。 因此TEMPDB中不会有什么内容从⼀个 SQL Server 会话保存到另⼀个会话。 不允许对TEMPDB进⾏备份和还原操作。
任何⽤户都可以在 tempdb 中创建临时对象。 ⽤户只能访问⾃⼰的对象,除⾮他们获得更多的权限。 可以撤消对 tempdb 的连接权限以阻⽌⽤户使⽤ tempdb,但是不建议这样做,因为⼀些例⾏操作需要使⽤ tempdb。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。