内容正文:
数据库备份与恢复
第8章
目录
01
数据库故障
及恢复策略
02
数据库恢复的原理及方法
03
数据库备
份操作
04
数据库恢
复操作
本章主要内容
本章主要介绍了数据库的备份和恢复。数据库恢复技术用来应对各种各样的故障,当数据库出现故障时,恢复机制能将数据库恢复到一致性状态,保证数据库中的数据是正确的。
数据库的恢复是以备份为基础的,SQL Server 2019的备份和恢复组件为存储在SQL Server中的关键数据提供了重要的保护手段。本章着重讨论备份和恢复的策略与过程。
数据库恢复的原理及方法
第8章
02
恢复机制涉及的关键问题
2.如何利用这些冗余数据实施数据库恢复
1.如何建立冗余数据
数据备份(backup)
登记日志文件(logging)
数据库镜像技术
8.2.1 数据备份
备份的数据文本称为后备副本或后援副本。
数据备份
指定期或不定期地对数据库数据进行复制。可以将数据复制到本地机器上,也可以复制到其他机器上,也称为数据转储。
8.2.1 数据备份
[例]
故障发生点
备份
运行事务
正常运行
─┼───────┼─────────↓────
Tf
重装后备副本
恢复
─┼───────┴--------→
重新运行事务
Ta
Tb
8.2.1 数据备份
备份方法
按照备份状态,数据备份可分为静态备份与动态备份
按照备份方式,备份还可以分为海量备份与增量备份
是在系统中没有正在运行的事务时进行了备份操作。
备份期间不允许对数据库的任何存取、修改活动
优点:简单
缺点:降低了数据库的可用性
静态备份
8.2.1 数据备份
动态备份
是指在备份期间允许对数据库进行存取或修改
备份操作与用户事务并发进行
优点
不用等待正在运行的用户事务结束
不会影响新事务的运行
缺点
不能保证副本中的数据正确有效
动态备份
8.2.1 数据备份
海量备份
指每次备份全部数据库
增量备份
指只备份上次备份后更新过的数据
从故障恢复角度看,使用海量备份得到的后备副本进行恢复,会更方便些,直接装入最新副本就行;而使用增量备份的后备副本进行恢复,需要按时间顺序逐个加入副本,恢复时间比较长。
从传统效率角度看,如果数据库很大,事务处理又十分频繁,则经常性的做增量备份会更便捷,更实用,更有效,海量备份耗费的时间太多,因而也就不能频繁的进行。
8.2.1 数据备份
8.2.2 登记日志文件
什么是日志文件
1.日志文件的格式
以记录为单位的日志文件
以数据块为单位的日志文件
日志文件(log file)是用来记录事务对数据库的更新操作的文件
8.2.2 登记日志文件
以记录为单位的日志文件内容
各个事务的开始标记(BEGIN TRANSACTION)
各个事务的结束标记(COMMIT或ROLLBACK)
各个事务的所有更新操作
以上均作为日志文件中的一个日志记录 (log record)
8.2.2 登记日志文件
记录事务开始标记的日志记录
事务标志 + BEGIN TRANSACTION
例:T1 BEGIN TRANSACTION
记录事务结束标记的日志记录
事务标志 + COMMIT
事务标志 + ROLLBACK
例:T1 COMMIT
T2 ROLLBACK
8.2.2 登记日志文件
记录事务更新操作的日志记录
示意性例子:
T1 U AA 18 20
T1 I TU 1
T1 D TV 20
1. 事务标识(标明是哪个事务)
2. 操作类型(插入、删除或修改)
3. 操作对象(记录ID、Block NO.)
4. 更新前数据的旧值(对插入操作而言,此项为空值)
5. 更新后数据的新值(对删除操作而言, 此项为空值)
8.2.2 登记日志文件
以数据块为单位的日志文件,每条日志记录的内容
事务标识
被更新的数据块
由于将更新前的整个块和更新后的整个块都放入日志文件中,操作类型和操作对象等信息就不必放入日志记录中了。
8.2.2 登记日志文件
2.日志文件的作用
具体作用
01
事务故障恢复和系统故障恢复必须用日志文件。
03
在静态备份方式中,也可以建立日志文件。
02
在动态备份时,由于不能获得数据一致性副本,所以采用动态备份方式必须建立日志文件。
8.2.2 登记日志文件
3.登记日志文件的原则
为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
登记的次序严格按并发事务执行的时间次序
必须先写日志文件,后写数据库
写日志文件操作:把表示这个修改的日志记录写到日志文件中
写数据库操作:把对数据的修改写到数据库中
8.2.3 数据库镜像技术
数据库镜像是数据库管理系