时间:2022-12-19 22:30:01 | 来源:信息时代
时间:2022-12-19 22:30:01 来源:信息时代
分布式可靠性 : 研究分布式数据库的故障恢复问题,并为此提出的分布式数据库的恢复方法。数据库恢复是保证数据库系统满足各种应用不可缺少的重要组成部分。尽管计算机系统可靠性在不断提高,数据库系统中也采用了很多措施和方法来保证数据库系统的正常运行,但系统仍不可避免地会出现这样或那样的故障,导致数据库中数据丢失或被破坏。因此,数据库系统必须采取相应的恢复措施,把数据库系统从故障状态恢复到一致性的正确状态。
1.分布式数据库系统中的故障
分布式数据库系统主要由场地及场地间的通信链路组成。因此,在分布式数据库系统中,除了会发生集中式数据库系统中的故障外,还会发生分布式数据库系统特有的故障,如: 通信链路故障等。根据分布式数据库特点,其故障类型可归纳为:
(1)事务故障: 主要由系统单个事务或系统死锁引起的,使事务被废弃。如: 算术溢出、被零除、超时、申请资源过多等。通常一个系统约有3%的事务被异常废弃。这一类故障不会导致存储介质上的数据被破坏,是一种影响性较小的可排除性的局部故障,由系统恢复机制自动恢复或重新启动事务来恢复。
(2)系统(场地)故障: 主要由处理器、主存、电源、系统过载和系统崩溃等造成的,往往涉及多个或全部事务,造成系统局部或系统全部出现故障。这类故障使主存的内容丢失,但外存的内容是安全的。
(3)介质故障: 是由外存设备故障引起的,如:磁头坏、驱动卡坏、扇区坏等。这类故障对数据库系统是致命的,导致外存数据部分或全部丢失。
(4)通信故障: 主要指报文丢失和网络分割这两种故障。报文丢失指在传送过程中由于报文丢失而导致的数据错误。网络分割指系统的一个场地与另一场地失去联系,使两场地间无法通信。
若存在两个结点A和B,报文丢失指A最大延迟内没有收到B发来的报文。网络分割指网络被断开或存在两个以上不相连接的子网。如果系统不存在通信故障,则表现出如下情况: ①收到的报文内容及报文顺序均正确; ②无超时错误发生。无超时错误指在发送报文后,在规定的延迟时间内应收到返回的应答信息。另外,除网络分割可能造成报文丢失外,场地故障也可造成报文丢失。
2.具有恢复功能的两段提交协议
两段提交(two-phase-commitment,2PC)协议是将事务提交分两个阶段: 决定阶段和执行阶段。决定阶段是做出提交/废弃的决定:执行阶段实现决定阶段的决定。2PC协议具有恢复场地故障和通信故障的特性。
(1)场地故障恢复: 图1描述了基于2PC协议实现场地故障恢复的过程。其中,C为协调者(coordinator); P为参与者(participants); P为预提交命令(prepare);C/A为提交/废弃命令(commit/abort);ack为应答;R/A为准备提交/准备废弃(ready/abort)。具体场地故障分析如下: ①故障在参与者场地,参与者在写R/A记录之前出错。此时,协调者发完prepare命令后在规定时间内收不到应答信息。恢复:协调者发现超时,做abort处理,即缺省认为收到abort应答。②故障在参与者场地,参与者在写R/A记录之后,写A/C记录之前出错。恢复: 故障场地重新启动,向协调者或其他场地重新请求命令(A/C)。③故障在协调者场地,协调者在写P记录之后,写A/C记录之前出错。恢复: 协调者重新启动后,重新执行2PC协议。④故障在协调者场地,协调者在写C/A记录之后,写complete记录之前出错。恢复: 没收到命令的参与者保持等待,协调者重新启动后,给所有参与者重发其决定的命令。
图1 2PC协议实现的概要图
图2 2PC协议中报文信息传输概要图