数据库原理-数据恢复
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理-数据恢复相关的知识,希望对你有一定的参考价值。
1.如何建立冗余数据
- 数据转储(backup)
- 登录日志文件(logging)
1.数据转储
特点:
- 数据库遭到破坏后可以将后备副本重新装入
- 重装后备副本只能将数据库恢复到转储时的状态
方法:
- 静态转储与动态转储
- 海量转储与增量转储
静态转储
转储期间不允许对数据库的任何存取、修改活动
优点:
实现简单
缺点:
-
- 降低了数据库的可用性
- 转储必须等待正运行的用户事务结束
- 新的事务必须等转储结束
动态转储
-
- 转储操作与用户事务并发进行
- 转储期间允许对数据库进行存取或修改
优点:
-
- 不用等待正在运行的用户事务结束
- 不会影响新事务的运行
缺点:
不能保证副本中的数据正确有效
[例] 在转储期间的某个时刻Tc,系统把数据A=100转储到磁带上,而在下一时刻Td,某一事务将A改为200。转储结束后,后备副本上的A已是过时的数据了
恢复方法:
利用动态转储得到的副本进行故障恢复,需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件,后备副本加上日志文件才能把数据库恢复到某一时 刻的正确状态。
海量转储: 每次转储全部数据库
增量转储: 只转储上次转储后更新过的数据
2.登记日志文件
以记录为单位的日志文件内容
- 各个事务的开始标记(BEGIN TRANSACTION)
- 各个事务的结束标记(COMMIT或ROLLBACK)
- 各个事务的所有更新操作
以记录为单位的日志文件,每条日志记录的内容
- 事务标识(标明是哪个事务)
- 操作类型(插入、删除或修改)
- 操作对象(记录内部标识)
- 更新前数据的旧值(对插入操作而言,此项为空值)
- 更新后数据的新值(对删除操作而言, 此项为空值)
以数据块为单位的日志文件,每条日志记录的内容
- 事务标识(标明是那个事务)
- 被更新的数据块
登记的次序严格按并行事务执行的时间次序,必须先写日志文件,后写数据库
2. 如何利用这些冗余数据实施数据库恢复
事务故障恢复
由恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改
事务故障的恢复由系统自动完成,对用户是透明的,不需要用户干预
系统故障恢复
Undo 故障发生时未完成的事务
Redo 已完成的事务
系统故障的恢复由系统在重新启动时自动完成,不需要用户干预
介质故障
重装数据库
重做已完成的事务
以上是关于数据库原理-数据恢复的主要内容,如果未能解决你的问题,请参考以下文章