1. 数据库组成

  数据库的存储结构分为逻辑存储结构和物理存储结构。

  ◊ 逻辑存储结构:说明数据库是由哪些性质的信息所组成。SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中。

  ◊ 物理存储结构:数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。

  SQL Server数据库系统中的数据库文件是由数据文件和日志文件组成的,数据文件以盘区为单位存储在存储器中。

1.1 数据文件

  数据库文件是指数据库中用来存放数据库数据和数据库对象的文件,一个数据库可以有一个或多个数据库文件,一个数据库文件只能属于一个数据库。当有多个数据库文件时,有一个文件被定为主数据文件,用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。数据文件则划分为不同的页面和区域,页是SQL Server存储数据的基本单位。

  主数据文件是数据库的起点,指向数据库文件的其他部分,每个数据库都有一个主要数据文件,扩展名为.mdf。

  次数据文件包含除主数据库文件之外的所有数据文件,一个数据库可以没有次数据文件,也可以有多个次数据文件,扩展名为.ndf。

1.2 日志文件

  SQL Server的日志是由一系列日志记录组成,日志文件中记录了存储数据库的更新情况等事务日志信息,用户对数据库进行的插入、删除和更新等操作都会记录在日志文件中。当数据库损坏时,可以根据日志文件来分析出错的原因,或者数据丢失时,还可以使用事务日志恢复数据库。每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。

  SQL Server2012不强制使用.mdf、.ndf或者.ldf作为文件的扩展名,但建议使用这些扩展名帮助标准文件的用途。数据库中的所有文件的位置都记录在master数据库和该数据库在主数据文件中。

2. 系统数据库

2.1 master数据库

  master是SQL Server中最重要的数据库,是整个数据库服务器的核心。用户不能直接修改master数据库,如果master数据库损坏了,那么整个SQL Server服务器将不能工作。

  master数据库中包含了以下的一些内容:

  ◊ 所有用户的登录信息

  ◊ 用户所在的组

  ◊ 所有系统的配置选项

  ◊ 服务器中本地数据库的名称和信息

  ◊ SQL Server的初始化方式等

  master数据库保存系统表用于系统的总体控制。如在新建一个数据库时,在master数据库的sysdatabases表中插入对应的记录。

  作为一个数据库管理员,应该定期备份master数据库。

2.2 model数据库

  model数据库是SQL Server中创建数据库的模板,如果用户

  ◊ 希望创建的数据库有相同的初始化文件大小,则可以在model数据库中保存文件大小的信息;

  ◊ 希望所有的数据库中都有相同的一个或多个表,可以将该数据表保存在model数据库中

  新创建的数据库以model数据库中的数据作为模板,因此在修改model数据库之前要考虑到,任何对model数据库中数据的修改都要影响到所有使用该模板创建的数据库。

  由于model数据库作为其他任意数据库的模板,系统中必须保留,不能删除。

  在更改model数据库时需要注意:任意新建的数据库至少要比model数据库大。如果将model数据库大小更改为100MB,则不能创建小于100MB的数据库。

2.3 msdb数据库

  msdb提供了运行SQL Server Agent工作的信息。SQL Server Agent是SQL Server中的一个Windows服务,该服务用来运行制定的计划任务。如在计划对一个数据库每夜进行备份时,则在msdb数据库中有一个相应的记录项。

2.4 tempdb数据库

  tempdb是SQL Server中的一个临时数据库,用于存放临时对象或中间结果,只要创建临时表,则临时表会创建在tempdb数据库中。SQL Server关闭后,该数据库中的内容被清空,每次重新启动服务器之后,tempdb数据库将被完全重建。

Sql Server系列:数据库组成及系统数据库的更多相关文章

  1. Sql Server系列:数据库操作

    1 创建数据库 1.1 CREATE DATABASE语法 CREATE DATABASE database_name [ ON [ PRIMARY ] <filespec> [ ,... ...

  2. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...

  3. SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)

    原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...

  4. SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)

    原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...

  5. sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案

    对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...

  6. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  7. SQL Server如何附加只有mdf的数据库文件

    有时候SQL Server意外断电会导致SQL Server的ldf日志文件丢失或者损坏,这个时候你如果直接附加mdf文件到SQL Server会失败,这里提供一个方法可以还原只有mdf的数据库文件, ...

  8. 解决SQL Server管理器无法连接远程数据库的问题(转)

    add by zhj: 本文最后那个数据库别名没搞明白,在我的测试中没有建别名,是可以的.远程登陆时,服务器名称: 服务器IP,端口号 (如223.42.155.248,52134 如果是默认端口号1 ...

  9. SQL Server 2005高可用性模式下创建数据库镜像

    SQL Server 2005高可用性模式下创建数据库镜像   高可用性模式下创建数据库镜像 第一步: --创建镜像用数据库-在主服务器上操作 create database db_mirror on ...

  10. 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)

    原文:监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1) 如果你要同步不同数据库之间的数据,首先会想到的是数据库复制技术,但如果让你同步数据库的结构,你会想到什么呢? 下面 ...

随机推荐

  1. scikit-learn包的学习资料

    http://scikit-learn.org/stable/modules/clustering.html#k-means http://my.oschina.net/u/175377/blog/8 ...

  2. Windows中使用TortoiseGit提交项目到GitLab配置

    下文来给各位介绍Windows中使用TortoiseGit提交项目到GitLab配置过程,下在全部图片希望对各位带来方便面. Gitlab默认的配置推荐使用shell命令行与server端进行交互,作 ...

  3. CentOS 7 学习笔记(一)时间管理

    1 获取当前时间 [root@limt01 ~]# date 2015年 05月 22日 星期五 01:30:50 CST 2 获取当前日期 [root@limt01 ~]# date "+ ...

  4. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

  5. charles4抓https请求的注意事项

    最近升级charles4.0后发现抓不了https请求了,但很奇怪ssl证书一样,记得以前用3.0就可以,今天仔细研究了一下,发现4.0的ssl代理设置中有一段说明(可能3.0也有但没注意): 直接上 ...

  6. Erlang error handling

    Erlang error handling Contents Preface try-catch Process link Erlang-way error handling OTP supervis ...

  7. jQueryUI Draggable 和 Droppable 配合使用时遇到的两个坑

    jQueryUI 的 拖拽插件极大的方便了开发者对拖拽功能的实现,但是官方教程给的太笼统,在具体实现的时候很多地方不明确,这里说一下我遇到的两个 "小坑": 1:Draggable ...

  8. Python之路【第三篇】python基础 之基本数据类型 补充

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...

  9. pythonchallenge 解谜 Level 4

    下一关... 一张图片,于是就点击了一下. 跳转到了 http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345 显示的是: ...

  10. ANT_HOME is set incorrectly or ant could not be located .Please set ANT_HOME.

    今天配置ant,奶奶的老是报错. 因为环境变量 ANT_HOME 和 JAVA_HOME 设置值不能有“;” ,把分号去掉即可成功了. 神奇!