数据库原理 知识量:8 - 33 - 100
数据库系统中发生的故障种类繁多,但大致可以归结为以下几类:
事务故障:这类故障发生在事务处理过程中,由于某种原因使得事务不能正常完成。事务故障可能导致数据的不一致性,如丢失更新、脏读等。
系统故障:这类故障通常是指数据库系统的硬件或软件发生故障,导致整个系统无法正常工作。系统故障可能导致大量事务被中断,需要数据库管理系统进行恢复。
磁盘故障:这类故障通常是指磁盘驱动器发生故障,导致磁盘上的数据无法访问。磁盘故障可能导致数据库的数据丢失或损坏。
网络故障:这类故障通常是指网络通信发生故障,导致数据库系统无法与其他系统进行通信。网络故障可能导致数据传输中断或数据不一致性。
软件错误:这类故障通常是指数据库管理系统的软件存在错误或缺陷,导致系统无法正常工作。软件错误可能表现为系统崩溃、数据损坏或事务处理错误等。
人为错误:这类故障通常是指由于人为操作错误导致的故障,如误删除数据、误修改数据等。人为错误可能导致数据丢失或数据不一致性。
数据恢复的实现技术主要包括以下几种:
软件问题数据恢复技术:主要针对由格式化误删或者病毒引起的资料损失的情况。大部分数据可以通过数据恢复软件(如Easyrecovery、FinalData、Recovery my file等)加上一些使用技巧和经验来恢复,除非数据已被完全覆盖。
硬件问题数据恢复技术:当硬盘本身问题而无法读取资料时,需要通过专业的数据恢复工程师配合专业数据恢复设备(开盘机、DCK硬盘复制机等),在无尘环境下维修和更换发生故障的零件。
数据库恢复技术:主要采用冗余数据来重建数据库中已被破坏或不正确的那部分数据。数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程被称为数据转储。当数据库遭到破坏后,可以将后备副本重新装入,但要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务。
具有检查点的数据恢复技术是一种用于提高数据库恢复效率和可靠性的技术。它通过在日志文件中增加一类新的记录——检查点记录(checkpoint record),以及增加一个重新开始文件(redo log file)来实现。
检查点记录包含了检查点建立时所有正在执行的事务清单,这些事务最近一个日志记录的地址,以及重新开始文件的内容。通过检查点记录,恢复子系统可以在日志文件中找到最后一个检查点记录,然后根据该记录得到检查点建立时刻所有正在执行的事务清单,从而进行相应的恢复操作。
此外,恢复子系统还可以在登录日志文件期间动态地维护日志。当事务正常运行时,数据库系统按一定的时间间隔设检查点,并在日志文件中写入一个检查点记录。在检查点时刻,系统将当前数据缓冲区中的所有数据记录写入磁盘的数据库中,并将检查点记录在日志文件中的地址写入重新开始文件中。
当发生故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略。如果故障发生在检查点之前,对数据库所做的修改一定都已经写入数据库,这时就不需要对该事务执行重做操作。如果故障发生在检查点之后,对数据库所做的修改可能已经写入数据库,也可能还没有写入数据库,需要根据事务清单进行判断,对未完成的事务进行撤销操作,对已完成的事务进行重做操作。
通过具有检查点的数据恢复技术,可以提高数据库的恢复效率和可靠性。它可以在发生故障时快速定位到正确的恢复点,减少不必要的重做操作和等待时间,从而保证数据库的可用性和性能。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6