master数据库

master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户、系统配置设置、端点和凭证以及访问其他数据服务器所需要的信息。master数据库还记录着启动服务器实例所需要的初始化信息,每个其它数据库的主文件位置。master数据库是SQL Server启动的时候打开的第一个数据库。SQL Server是从这个数据库里找到其它数据的信息的。如果master数据库有问题,整个SQL Server都将无法启动。

master数据库本身不大,做一次备份很快。建议要经常做master的完整数据库备份,以充分保护您的数据。如果master数据库已损坏,可以通过还原master数据库的最近完整数据库备份,轻松修复已损坏的数据库。

如果由于master数据库损坏严重大无法启动服务器实例,有没有备份,这时候只能重建了。重建master数据将使的所有的系统数据库恢复到其原始状态。例如,重建master数据库会删除并重新创建msdb数据库。这将导致丢失所有的计划信息以及备份和还原历史记录。所以重建master数据库后,SQL Server就像被重装过一样。所有的用户记录都会丢失,用户数据库需要再次附加,SQL Server任务记录都要重建。这是一个很折腾的过程。重建master数据库是个万不得已的选择。

在执行任何语句或系统过程中来更改master数据库中的信息以后(例如,更改服务器范围的配置选项以后),应备份master数据库。如果在更改master数据库后没有进行备份,则自上次备份以来的更改都将在还原备份时丢失。

一下行为会更改master中元数据:

1、创建或删除用户数据库,这里不包括用户数据库自动增长以容纳新数据时,master数据时不受影响的。

2、添加或删除文件和文件组

3、添加登录或其它与登录安全相关的操作,这里不包括对数据库层面的操作,比如添加用户

4、更改服务器范围的配置选项或数据库配置选项

5、创建或删除逻辑备份设备

6、配置用于分布式查询和远程过程调用(RPC)的服务器,如添加链接服务器或远程登录。

恢复master数据库使用还是RESTORE指令。可是还原master数据库后,SQL Server实例将自动停止。我们前面讲过,master里面记录了其他所有数据库主文件的地址。SQL Server通过这个地址来寻找这些数据库。如果我们将master数据库恢复到一台新的服务器上,难免文件地址会有所变化。这时SQL Sever将找不到其它数据库。需要使用单用户模式启动SQL Server,将master数据库里信息修改成新的地址。

开启单用户模式,需要停止所有SQL Server服务(服务器实例本身除外),并停止所有SQL Server实用工具(SQL Server代理,报表服务器等)。停止服务和实用工具可以防止他们尝试访问服务器实例。否则单用户启动后,他们会占用这个用户连接,管理员反而连接不进去了。

model 数据库

创建用户数据库时,model数据库是SQL Server使用的模板。model数据库的全部内容(包括数据库选项)都会被复制到新的数据库。所以这个数据库是推荐做任何修改的。除非有目的的创建一些模板,否则不要去更改这个数据库,也不要把任何用户数据放在这个数据库里。

虽然这个数据库的内容一般不发生变化,但是在SQL Server启动的时候,要使用model数据库的某些设置创建新的tempdb。如果没有tempdb,SQL Server将无法启动。因此model数据库必须始终存在于SQL Server系统中。所以这个数据库也要备份。

还原model数据库与对用户数据执行完整数据库还原过程一样。

msdb数据库

msdb数据库用来存储计划信息以及备份与还原历史记录的信息,所以SQL Server本身,ssms和Agentd都要用到它。

SQL Server将在msdb数据库中自动维护一份完整在下备份与还原历史记录。这些信息包括执行备份一方的名称、备份时间和用来存储备份的设备或文件。SSMS利用这些信息提出计划还原数据库并应用事务日志备份。将会记录有关所有数据库备份事件,即使他们由自定义程序或第三方创建的。例如,如果使用C#程序调用SQL Server执行备份操作时,所有的事件都将记录在msdb系统表、windows应用程序日志和SQL Server错误日志中。而SQL Server代理使用的所有计划信息。包括计划的定义、排程、历史日志等信息。

默认情况下,msdb数据库使用简单恢复模式。如果要恢复用户数据库时使用msdb数据库中的所有备份与还原历史记录信息,建议对msdb数据库使用完整恢复模式,并建议考虑将msdb数据库事务日志放置在容错存储设备中。

tempdb临时库和资源数据库(Resource Databse)

SQL Server还有两个系统数据库比较特别。他们是tempdb和资源数据库。缺了这个两个数据库SQL  Server页将无法启动。但是这两个库不能做数据库备份。

temdp系统数据库是一个全局资源。可供连接到SQL Server实例的所有用户使用。

每次启动SQL Server时都会重建tempdb数据库,从而在系统启动时总保持一个干净的数据库副本。连接断了以后,SQL Server会自动删除临时表和存储过程。因此tempdb数据库中不会有什么内容需要在服务关闭的时候保存下来。只要有干净的model数据库就可以。SQL Server都能够创建出一个tempdb数据库。Temdp数据本身倒不用备份。SQL Server同样也没有提供对tempdb数据库的备份和还原操作。保护好model数据库,就能保证在下次启动时,得到一个好的tempdb数据库。所以对tempdb数据库保护,转为了对model数据库的保护。

Resource数据时一个只读数据库。它包含了SQL Server中所有的系统对象。系统对象(例如sys.objects)在物理上存在于Resource数据库中。但是在逻辑上,他们出现在每个数据库的sys结构中。Resource数据库不包含任何用户或用户元数据。对于同一个版本的SQL Server。他们的Resource数据库应该都是一样的。

默认在实例下是看不到资源库的,但是Resource数据库的物理存在的,物理文件名为mssqlsystemresource.mdf和mssqlsystemresource.ldf。默认情况下,这些文件存储于目录:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL

在群集中,Resource数据库位于共享磁盘中的Data文件夹中。其实Resource数据库依赖于master数据库位置。如果管理员移动了master数据库,则必须也将Resource数据库移动到相同的位置。

因为Resource数据库从来不做修改,所以SQL Server理论上不用备份的。但是管理员不但要考虑SQL Server层面的问题。还要考虑整个系统层面的问题。难免物理磁盘损坏会发生,使得文件出现损坏。所以要通过将mssqlsystemresource.mdf文件作为二进制文件,做基于文件的备份或基于磁盘的备份。恢复时要将SQL 服务停止。手段还原mssqlsystemresource.mdf的文件备份副本。并且必须谨慎,不同版本的Resource数据库会不一样。是要使用过期版本或可能不安全的版本覆盖当前Resource数据库。

我们集中列举下

系统数据库 说明   是否支持备份 恢复模式 注释
master 记录SQL Server系统的所有系统级别信息的数据库 支持 简单

必须经常备份Master数据库,以便根据业务需要充分

保护数据。建议使用定期备份计划,这样在大量更新

之后可以补充更多的备份

model 在SQL Server实例上为所有数据库创建的模板 支持 用户可配置

仅在业务需要时备份model数据库,例如自定义其数据

库选项后立即备份。最佳方法是:建议根据需要创建

model数据库完整性数据库备份。由于model数据库较小

而且很少更改,因此无需备份日志

msdb  

SQL Server代理用来安排报警和作业以及记录操作员

信息的数据库。msdb数据库还包含历史记录表,例如

备份和还原历史记录表

支持 简单(默认值) 更新时备份msdb数据库
Resource(RDB)

包含SQL Server附带的所有系统对象副本的只读

数据库

不支持  

Resource数据库位于mssqlsystemresource.mdf文件中,

该文件近包含代码。因此,SQL Server不能备份Resource数据库。

但是可以通过文件备份和磁盘备份,同样还原的时候不通过SQL Server,

还原这些备份,只能手动还原mssqlsystemresource.mdf的备份副本,

并且必须谨慎,不要使用过期版本或可能不安全的版本覆盖当前的Resource数据库

tempdb

用于保存历史或中间结果集的工作空间,

每次启动SQL Server实例时都会重建该库,服务

器实例关闭时,将永久删除Tempdb数据库中的所有数据

不支持 简单

无法备份tempdb系统数据库

distribution

只有将服务器配置为复制分发服务器时才存在

此数据库。此数据库存储元数据库、各种复制的历史记录数据以及用于事务复制的事务

支持 简单

根据您具体的复制配置决定

 
 

SQL Server 系统库的备份与恢复的更多相关文章

  1. 还原SQL SERVER系统库

    还原SQL SERVER系统库 共需还原三个系统库,还原顺序:master>msdb>model 还原master (1).数据库配置管理器->数据库服务属性->启动参数-&g ...

  2. SQL Server 2000数据库备份与恢复图解

    SQL Server 2000数据库备份与恢复图解   四个步骤:1.安装sql server 2000 2.数据库设置: 3.建立自动备份 4.还原数据库  具体图片见附件 本文出自 "李 ...

  3. 烂泥:SQL Server 2005数据库备份与恢复

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 服务器的迁移,因为业务使用的数据库是SQL Server 2005,所以就要首先对数据库进行备份. 备份可以分为手动备份和自动备份,我们先来介绍手动备份 ...

  4. SQL SERVER 系统库查询

    本文内容主要来自网络,如有错误请路过的大牛指点迷津. 1.sqlserver 数据库最大并发连接数 sqlserver的最大连接数虽然说是不限制,但实际的限制数量是32767,如果需要超出这个数量,一 ...

  5. SQL Server 2008数据库备份与恢复

    在这所要说的是“分离/附加”数据库: 1.分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.M ...

  6. SQL Server 虚拟化(2)——理想的SQL Server虚拟机架构

    本文属于SQL Server虚拟化系列 搭建SQL Server虚拟机,在各个组织之间都有自己的标准和最佳实践.从第一眼看去,光物理配置就有过百种,所有的这些细微差别都有可能为后续日常管理过程中故障侦 ...

  7. 《SQL Server企业级平台管理实践》读书笔记——几个系统库的备份与恢复

    master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户.系统配置设置.端点和凭证以及访问其他数据服务器所需要的信息.master数据库还记 ...

  8. sql server 备份与恢复系列四 大容量模式下的备份与还原

    一. 概述 在sql server 备份与恢复系列的第一篇里,有讲到大容量模式下备份与还原的相关知识.这篇重点来演示在大容量模式下常用的备份与还原模式“完整备份+差异备份+日志备份”. 在大容量恢复模 ...

  9. sql server 备份与恢复系列二 事务日志概述

    1.1  日志文件与数据文件一致性 在上一章备份与恢复里了解到事务日志的重要性,这篇重点来了解事务日志. 事务日志记录了数据库所有的改变,能恢复该数据库到改变之前的任意状态.在sql server实例 ...

随机推荐

  1. OKR究竟适不适合国内企业?

    某天见到知乎上有人提问,OKR在中国能行的通吗?细看下面的回复,多数人觉得大部分企业都是不适合的,他们认为让普通员工主动付出努力去达到更高的要求是不可能的,并且公司环境也不适合OKR的推行.但我却有不 ...

  2. react生命周期钩子函数

    render在更新阶段和挂在阶段都会执行 class App extends Component { render() { return ( <div> <h1>reacet生 ...

  3. 洛谷 P2040 打开所有的灯 题解

    这个题写其他题解的dalao们已经解释了 一个灯最多开一次(如果实在不知道为什么看评论区) 这个题一共就9个灯嘛,对吧 递归好想不好写(对于我这种蒟蒻) 所以我写了一个所有题解中最暴力的 直接枚举9个 ...

  4. 划水嘶吼misc

    划水嘶吼misc [题目描述]: 开局一张图,flag全靠编 [题目writeup]: 瞅半天,瞅到二维码 然后用potplayer按帧查找到skr二维码 通过PS自动调整对比度,扫出key1,2,3 ...

  5. mac jq for json format

    mac jq #1.安装 brew install jq #2.创建文件 echo '{"name": "Ruby"}' > ./test.json #3 ...

  6. Spring Boot-Error:(3, 32) java: 程序包org.springframework.boot不存在

    问题分析 -由于加载的项目没有加载相应的依赖的包文件导致 解决方案 setting 选中图中的设置,点击apply,IDE就会自动下载所需要的包文件

  7. odoo开发笔记 -- odoo权限管理

    odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...

  8. JAVA中String空对象的字符串拼接

    今天使用JSONObject中get一个不存在的对线,最后拼接成sql语句插入数据库时,最后数据库中的值为字符串'null',而不是空对象. 追踪许久才发现自己的java白学了. java strin ...

  9. Eureka Server 集群配置

    注册中心: debug: true spring: application: name: eureka-server logging: level: com.netflix.eureka: 'off' ...

  10. HDFS API 测试用例

    增加依赖 <!--hadoop--> <dependency> <groupId>org.apache.hadoop</groupId> <art ...