文章适用于计算机等级考试NCRE三级数据库技术,内容来源于网络,文章内容侵删,如果文章和个人的理解有出入,请务必以自己的知识储备为准,仅做参考
12.1 备份与恢复的概念
12.1.1 备份数据库
- 备份原因:防止数据库丢失,是数据转移的一种方式
12.1.2 恢复数据库
- 恢复概念:指DBS故障时,利用备份恢复DB
- 类型:介质故障恢复、非介质故障恢复
12.2 SQL SERVER的备份与恢复
12.2.1 恢复模式
- 概念:是一个DB属性,用于控制DB备份和还原操作的基本行为
- 作用:决定备份类型和还原方案
- 分类:简单恢复、完整恢复、大容量日志恢复
1.简单恢复
- 简略记录大部分事务,不备份事务日志,只能保证恢复DB的一致性
2.完整恢复
- 完整记录了所有事务,并保留所有事务日志记录
3.大容量日志恢复
- 简略记录大容量操作,完整记录其他事务,一般作为完整恢复的补充
12.2.2 备份内容和时间
- 备份内容:用户DB和系统DB
- 备份时间:用户DB(周期性备份),系统DB(修改之后备份)
立刻备份的情况:
- 创建数据库之后
- 批量加载数据之后
- 执行清理事务日志的操作之后
- 执行大容量数据操作之后
12.2.3 备份机制
1.备份设备
- 概念:SQL SERVER将备份数据库的场所称作备份设备,支持将DB备份到磁带或磁盘上
- 类型 :
- 永久备份设备:在备份前需要先建立
- 临时备份设备:不需要预先建立,在备份时将DB直接备份到物理文件上
2.创建备份设备的语句
- 语句 :
sp_addumpdevice - 参数 :
[@devtype = ] 'device_type'--设备类型[@logicalname = ] 'logical_name'--设备逻辑名[@physicalname = ] 'physical_name'--设备物理名
3.备份类型
- 数据库备份:完整数据库备份(完全转储)、差异数据库备份(差异转储)
- 文件备份:文件备份、差异文件备份
- 事务日志备份
| 备份类型 | 说明 |
|---|---|
| 完整数据库备份 | 是恢复DB的基线,需要备份: 1. 整个DB:数据文件、DB对象、数据信息 2. 备份处于备份过程时发生的活动 3. 备份未提交的事务到日志 |
| 差异数据库备份 | 需要上一次完整备份为基准点,比完备节约时间,恢复时先恢复对应的完备,需要备份: 1. 备份从上次完备之后数据的改动 2. 备份处于差异备份过程时发生的活动 3. 备份未提交的事务到日志 |
| 文件备份 | 针对物理文件进行备份和还原,可以只恢复已损坏的DB文件,更灵活,恢复速度更快 |
| 差异文件备份 | 备份从上一次文件备份之后数据的改动 |
| 事务日志备份 | 备份从上一次日志备份之后的日志记录,仅用于完整恢复或大容量日志恢复模式,分为以下三种类型: 1. 纯日志备份 2. 大容量操作日志备份 3. 结尾日志备份 |
4.常用备份策略
| 备份策略 | 适用场景及特点 |
|---|---|
| 完整备份 | ● 适用于DB数据量较小,数据更改不频繁的情况 ● 一般几天或几周一次 ● 若对数据修改次数不频繁,且允许少量数据丢失,可以只用完备策略 |
| 完整备份+日志备份 | ● 适用于只允许极少数据丢失,同时备份频率较低的情况 ● 在两次完全备份期间进行日志备份 |
| 完整备份+差异备份+日志备份 | 在两次完备之间插入若干差异备份,在若干差异备份之间插入若干日志备份 |
5.备份的实现
- 完全备份 :
BACKUP DATABASE 数据库名 TO 备份设备 - 覆盖完全备份 :
BACKUP DATABASE 数据库名 TO 备份设备 WITH INIT - 追加日志备份 :
BACKUP LOG 日志文件 TO 备份设备
12.2.4 SQL SERVER恢复机制
- 支持级别:SQL SERVER支持DB级的恢复和文件级的恢复
1.恢复的顺序
- 恢复最近的完全备份
- 恢复最近的差异备份(若有)
- 恢复差异备份之后的日志备份(若有)
- 恢复数据库
2.恢复的实现
- 完全备份恢复 :
RESOTRE DATABASE 数据库名 FROM 完全备份设备 WITH NORECOVERY - 差异备份恢复 :
RESOTRE DATABASE 数据库名 FROM 差异备份设备 WITH NORECOVERY - 日志备份恢复 :
RESOTRE LOG 数据库名 FROM 日志备份设备 WITH NORECOVERY
注:NORECOVERY表示之后还有备份文件需要恢复