第十一章 故障管理
内容提要:
- 了解故障管理类型及数据库恢复技术
- 了解数据转储技术
- 了解如何利用日志文件进行数据恢复
- 了解硬件容错方案
11.1 故障管理概述
- 故障类型及解决方案:
- 事务内部故障 :导致数据不一致
- 预期的事务内部故障 : 可通过事务过程本身发现
- 解决办法:事务回滚
- 非预期的事务内部故障 : 不能由事务程序处理,如运算溢出
- 预期的事务内部故障 : 可通过事务过程本身发现
- 系统故障 : 又称软故障,运行期间,由于硬件故障、数据库软件及OS漏洞、突然断电等故障,导致数据不一致。
- 解决办法:重启后,撤销(UNDO )所有未提交的事务;重做(REDO)所有已提交的事务。
- 介质故障 :又称硬故障,运行期间由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等,使得数据丢失的一类故障。导致物理存储设计损坏,数据文件及数据全部丢失,破坏性最大。
- 容错策略:软件容错及硬件容错
- 计算机病毒故障 : 病毒是恶意的计算机程序,破坏OS及数据库系统(破坏数据文件为主)。
- 解决办法:防火墙、杀毒软件、数据库备份文件。
- 事务内部故障 :导致数据不一致
- 数据库恢复技术:
- 恢复的基本原理:冗余
- 数据库恢复:把数据库从错误状态恢复到某一已知的正确状态。
- 在DBMS中,数据库恢复子系统占10%以上
- 恢复机制涉及两个问题:
- 如何建立冗余数据
- 建立冗余数据的技术:数据备份、登记日志文件、数据库复制、数据库镜像、为段设立保存点以及使用后备段与现行页表来支持对段的保存等。
- 如何利用这些冗余数据实施数据库恢复。
- 如何建立冗余数据
11.2 数据转储
- 数掘转储即数据备份
- 指DBA或DBMS定期复制数据库,并将其存放到其他介质的过程。
- 这些保存的副本被称为后援副本或后备副本。
- 静态转储和动态转储
- 静态转储:期间系统不能运行其他事务,不允许任何存取、修改活动。
- 静态转储保证数据的一致性,但降低了数据库的可用性。转储和事务是互斥的。
- 动态转储:即允许转储和事务并发执行。
- 动态转储不能保证转储数据的一致性。
- 静态转储:期间系统不能运行其他事务,不允许任何存取、修改活动。
因此,动态转储+日志文件(记录转储期间各事务对数据库的修改活动记录)
- 既保证数据一致性又提高了数据库的可用性。
- 数据转储机制
- 完全转储:对数据库中所有数据进行转储,占据较多时间和空间,但恢复时间短。
- 增量转储:只复制上次转储后发生变化的文件或数据块。所需时间及空间短,但只能和完全转储配合才能对数据库进行恢复。
- 差量转储:对最近一次数据库完全转储以来发生的数据变化进行转储。
- 多种转储方法结合使用
- 仅使用完全转储:占据时间和空间多,代价大
- 完全转储+增量转储:恢复时间较长
- 完全转储+差量转储:恢复时间短
11.3 日志文件
- 日志文件的概念:
- DBMS运行中,将所有事务的修改操作登记到日志文件。
- 日志文件的具体作用:
- 事务故障恢复和系统故障恢复必须使用日志文件
- 在动态转储方式中必须建立日志文件
- 在静态转储方式中也可使用日志文件
- 日志文件的格式与内容:
两种格式:
- 以记录为单位的日志文件
- 需要记录的内容:
- 各个事务的开始标记 BEGIN TRANSACTION
- 各个事务的结束标记 COMMIT OR ROLLBACK
- 各个事务的所有更新操作
- 以数据块为单位的日志文件
- 日志记录的内容包括:
事务标识和被更新的数据块
- 登记日志文件的原则
- 登记的次序严格按并行事务执行的时间次序。
- 保证事务对数据库的操作的可再现性和正确性。
- 必须先写日志文件,后写数据库。
- 先后顺序导致必然性。
- 登记的次序严格按并行事务执行的时间次序。
- 检査点
- 检查点的作用:最大限度地减少数据完全恢复时必须执行的日志部分。
- 基于检查点的恢复步骤:
①从“重新开始文件”中找到最后一个检查点记录在日志文件中的地址,从而找到最后一个检查点记录。
②由该检查点记录得到执行的事务清单ACTIVE LIST。
③从检查点开始正向扫描文件。
④对UNDO-LIST中的事务执行UNDO,对REDO-LIST中的事务执行REDO。
11.4 硬件容错方案
- 相关度最紧密的技术:数据库存储保护技术,服务器容错技术,数据库镜像与容灾技术。
- 磁盘保护技术:
- RAID依靠冗余技术数据保护
- 镜像冗余
- 即把所有的数据复制到其他设备。
- 额外开销大:更多的磁盘、控制器、电缆
- 校验冗余
- 对成员磁盘的数据执行异或(XOR)操作,得到其校验值,并存放在另外的校验盘上
- 实现复杂,但比镜像冗余占据的空间小。
- 镜像冗余
- 服务器容错技术
- 引入服务器容错原因:
解决服务器硬件异常问题。
- 服务器容错技术简介:
采用两台相同的服务器,共享存储设备。(双机热备)
两台服务器之间会有私有网络进行心跳检
- 数据库镜像与数据库容灾
- 引入数据库镜像原因:前面几种恢复技术都必须及时正确地转储数据库。
- 数据库镜像简介:是一种用于提高数据库可用性的解决方案,它根据DBA的要求,自动把整个数据库或关键数据复制到另一个磁盘上。
- 数据库镜像分类:
- 双机互备援模式:
两台机器均为工作机。正常状况下均为系统提供支持,互相监视对方的运行情况
2. 双机热备份模式:
一台为工作机,一台为备份机。工作机为系统提供支持,备份机监视工作机的运行情况
- SQL Server数据库镜像提供三种实现方式
- 高可用性:两台服务器同步事务写入支持自动错误恢复。
- 高保护性:两台服务器同步事务写入,手工错误恢复。
- 高性能:两台服务器写入不同步,手工错误恢复。
其余章节进我主页进行查看