第十一章 故障管理
版权来源233网校,若有侵权联系shaoyayu0419@qq.com删除
版权地址:www.233.com
内容提要:
1、了解故障管理类型及数据库恢复技术
2、了解数据转储技术
3、了解如何利用日志文件进行数据恢复
4、了解硬件容错方案
第一节 故障管理概述
1.1、故障类型及其解决方案
DBMS中常见的4类故障:
事务内部故障
系统故障
介质故障
计算机病毒故障
事务内部故障
事务故障导致数据不一致,分为预期的(大部分)和非预期的。
(1)预期的事务内部故障
可通过事务过程本身发现的。解决办法:事务回滚
(2)非预期的事务内部故障
不能由事务程序处理的故障,如运算溢出等。
事务故障的恢复由系统自动完成。
系统故障
又称软故障,运行期间,由于硬件故障、数据库软件及OS漏洞、突然断电等故障,导致数据不一致。
解决办法:重启后,撤销(UNDO)所有未提交的事务;重做(REDO)所有已提交的事务;
介质故障
又称硬故障,运行期间由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等,使得数据丢失的一类故障。导致物理存储设计损坏,数据文件及数据全部丢失,破坏性最大。
容错策略:软件容错及硬件容错。
软件容错
使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。若故障导致事务日志文件丢失,则不能完全恢复。
硬件容错
一种方案是使用双物理存储设备,如双硬盘镜像。缺点:自然灾害或机房水灾、火灾导致双硬盘同时损坏,则失去保护作用。
另一种方案是设计两套相同的数据库系统,通过数据库软件机制,同步变化数据。
计算机病毒故障
病毒是恶意的计算机程序,破坏OS及数据库系统(破坏数据文件为主)。
解决办法:防火墙、杀毒软件、数据库备份文件。
1.2、数据库恢复技术概述
无论哪种故障,恢复的基本原理是冗余。
数据库恢复:把数据库从错误状态恢复到某一已知的正确状态。
在DBMS中,数据库恢复子系统占10%以上。
恢复机制涉及两个问题:如何建立冗余数据;如何利用这些冗余数据实施数据库恢复。
建立冗余据的技术
数据备份、登记日志文件、数据库复制、数据库镜像、为段设立保存点以及使用后备段与现行页表来支持对段的保存等。
最常用的是数据备份和登记日志文件。
数据转储即数据备份:
指DBA或DBMS定期复制数据库,并将其存放到其他介质的过程。
这些保存的副本被称为后援副本或后备副本。
第二节 数据转储
2.1、静态转储和动态转储
静态转储:期间系统不能运行其他事务,不允许任何存取、修改活动。
静态转储保证数据的一致性,但降低了数据库的可用性。转储和事务是互斥的。
动态转储:即允许转储和事务并发执行。
动态转储不能保证转储数据的一致性。
动态转储+日志文件(记录转储期间各事务对数据库的修改活动记录):既保证数据一致性又提高了数据库的可用性。
2.2、数据转储机制
完全转储:对数据库中所有数据进行转储。占据较多时间和空间,但恢复时间短。
增量转储:只复制上次转储后发生变化的文件或数据块。 所需时间及空间短,但只能和完全转储配合才能对数据库进行恢复。
差量转储:对最近一次数据库完全转储以来发生的数据变化进行转储。
2.3、多种转储方法结合使用
仅使用完全转储:占据时间和空间多,代价大。
完全转储+增量转储:恢复时间较长。
完全转储+差量转储:恢复时间短。
第三节 日志文件
3.1、日志文件的概念
DBMS运行中,将所有事务的修改操作登记到日志文件。
作用:事务故障恢复和系统故障恢复必须使用日志文件。
在动态转储方式中必须建立日志文件。
在静态转储方式中也可使用日志文件。
3.2、日志文件的格式与内容
两种格式:
以记录为单位的日志文件
需要记录的内容:
- 各个事务的开始标记 BEGIN TRANSACTION
- 各个事务的结束标记 COMMIT OR ROLLBACK
- 各个事务的所有更新操作
以数据块为单位的日志文件
日志记录的内容包括:
事务标识和被更新的数据块
3.3、登记日志文件的原则
1.登记的次序严格按并行事务执行的时间次序。
保证事务对数据库的操作的可再现性和正确性。
2.必须先写日志文件,后写数据库。
先后顺序导致必然性。
4.4、检查点
检查点的作用
最大限度地减少数据完全恢复时必须执行的日志部分。
检查点的引入
在日志中增加检查点记录,增加一个“重新开始文件”。
检查点记录的内容:建立检查点时刻正执行的事务清单;这些事务最近一个日志记录的地址。
重新开始文件记录的内容:各个检查点记录在日志中的地址。
基于检查点的恢复步骤
①从“重新开始文件”中找到最后一个检查点记录在日志文件中的地址,从而找到最后一个检查点记录。
②由该检查点记录得到执行的事务清单ACTIVE_LIST。
③从检查点开始正向扫描文件。
④对UNDO-LIST中的事务执行UNDO, 对REDO-LIST中的事务执行REDO。
第四节 硬件容错方案
4.1、概述
由于数据库运行的硬件故障(DBA备份)、机房电力故障、机房自然灾害等,要求从硬件级别对DBMS进行保护。
从DBMS运行所需要的各种环境出发,分析支撑数据库系统运行的环节。
相关度最紧密的技术:数据库存储保护技术,服务器容错技术及数据库镜像与容灾技术。
4.2、磁盘保护技术
RAID:廉价冗余磁盘阵列,多块磁盘构成的一个整体。
RAID依靠冗余技术 数据保护:
镜像冗余
即把所有的数据复制到其他设备。
额外开销大:更多的磁盘、控制器、电缆。
校验冗余
对成员磁盘的数据执行异或(XOR)操作,得到其校验值,并存放在另外的校验盘上。
实现复杂,但比镜像冗余占据的空间小。
RAID根据所采用的方法不同,分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6, RAID-7,RAID-10,RAID-50,RAID-60。
RAID-0:将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。
RAID-1:两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。
RAID-5:RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5至少需要三颗硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
RAID-10:RAID0与RAID-1的组合体,继承了前者的快速,后者的安全。 RAID-10冗余度为50%。
4.3、服务器容错技术
引入服务器容错原因
解决服务器硬件异常问题。
服务器容错技术简介
采用两台相同的服务器,共享存储设备。(双机热备,Active-Standby)
两台服务器之间会有私有网络进行心跳检测。
其他服务器容错技术
硬件级别:自行设计制造的专用软硬件架构。
软件级别:专门的服务器级别容错技术,如Oracle提供了RAC架构。
4.4、数据库镜像与数据库容灾
引入数据库镜像原因
前面几种恢复技术都必须及时正确地转储数据库。
数据库镜像简介
是一种用于提高数据库可用性的解决方案,它根据DBA的要求,自动把整个数据库或关键数据复制到另一个磁盘上。
数据库镜像分类
1、双机互备援模式
两台机器均为工作机。正常状况下均为系统提供支持,互相监视对方的运行情况。
2、双机热备份模式
一台为工作机,一台为备份机。工作机为系统提供支持,备份机监视工作机的运行情况。
工作方式
“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。在会话中扮演互补角色。一旦出现故障,使用“角色切换”过程来互换主体服务器和镜像服务器。
4.5、SQL Server数据库镜像简介
SQL Server数据库镜像是将数据库事务处理从一个SQL Server数据库移到不同的SQL Server数据库。
镜像的复制是一个备用的复制,不能直接访问,只用来进行错误恢复。
见证服务器”使镜像服务器自动识别。
两种运行模式 :“高安全性模式”及运行模式。
SQL Server数据库镜像提供三种实现方式:
高可用性。两台服务器同步事务写入,支持自动错误恢复。
高保护性。两台服务器同步事务写入,手工错误恢复。
高性能。两台服务器写入不同步,手工错误恢复。
例题
1、在动态转储中,利用转储文件只能将数据库恢复到转储过程的某个状态,且转储文件中的数据可能不一致,只有和( )文件综合起来使用,才能使数据库恢复到一致状态。
答案:日志
2、数据库镜像有很多优点,但不包括( )
A. 数据库镜像提供完整或接近完整的数据冗余,增强数据保护功能
B.发生灾难时,数据库镜像可快速使数据库的备用副本提供服务
C.数据库镜像可以降低应用成本
D.提高生产数据库在升级期间的可用性
答案:C
3、事务是由一系列操作组成的,事务的执行表现为事务中各个操作的执行。每个事务应具有结束操作。当一个事务发生故障需要终止并取消所有已执行的数据修改时应执行( )操作。
答案:UNDO
4、对于故障管理,下列说法正确的是( )
A.软件容错最完全的方法是设计两套相同的数据库系统同时工作,数据的变化也同步,空间有一定的距离,因此同时破坏两套的概率几乎为零,这样就能达到数据库的完全安全
B.介质故障是指数据库在运行过程中,系统突然停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的故障
C.动态转储提高了数据库的可用性,但是数据的有效性却迟迟得不到保证
D.在数据库系统中,事务日志能够实现数据转储
答案:C
5、当数据库系统出现故障时,可以通过数据库日志文件进行恢复。下列关于数据库日志文件的说法,错误的是( )
A.数据库出现事务故障和系统故障时需使用日志文件进行恢复
B.使用动态转储机制时,必须使用日志文件才能将数据库恢复到一致状态
C.在OLTP系统中,数据文件的空间使用量比日志文件大得多,使用日志备份可以降低数据库的备份空间
D.日志文件的格式主要有以记录为单位的日志文件和以数据块为单位的日志文件两种
答案:C
6、某跨国公司的业务系统需要提供全球性服务,该业务系统需要24小时X7天在线服务,系统业务繁忙,为了保证业务系统中数据库数据的安全,需要设计与实施数据转储机制,设计完成该数据库每天数据增量的转储需要两个小时,在不考虑成本因素的情况下,下列最合理的是( )
A.每天划出长度为2小时的时间窗口tw,在tw内采用动态转储方法实现每天数据增量的转储
B.每天划出长度为2小时的时间窗口tw,在tw内采用静态转储方法实现每天数据增量的转储
C.配备高性能数据库服务器,通过事务传送机制实时地将数据库中的任何变化反映到备份环境中
D.每周做一次完全转储,每天选择浮动时间段对变化的数据进行转储
答案:C