故障管理概述
故障类型及其解决方法
事务内部的故障
事务内部故障分为预期的和非预期的
(1)预期的事务内部故障
如果发生了预期的事务内部故障,可以通过将事务回滚,撤销其对数据库的修改,从而使数据库回到一致性的状态。
(2)非预期的事务内部故障
非预期的事务内部故障是不能由事务程序处理的。
系统故障
系统故障又称软故障
当数据库发生软故障时,容错对策是在重新启动系统后,撤销(UNDO)所有未提交的事务,重做(REDO)所有已提交的事务,以达到容错目的。
介质故障
介质故障又称硬故障
介质故障的容错对策采用两种方式,一种是软件容错,一种是硬件容错。
为了保证介质故障下的数据库能够完全恢复,应采用硬件容错方法。
数据库恢复技术概述
恢复机制涉及的两个关键问题是:
①如何建立冗余数据
②如何利用这些冗余数据实施数据库恢复
建立冗余数据的技术有很多,例如为数据备份、登记日志文件、数据库复制、数据库镜像、为段设立保存点以及使用后备段与现行页表来支持对段的保存等。
数据转储
(1)静态转储。在静态转储过程中,系统不能运行其他事务,不允许在转储期间对数据库有任何的存取、修改活动。
(2)动态转储。动态转储是指允许转储操作和用户事务并发执行。即允许在转储过程中对数据库进行存取和修改操作。
静态转储可以保证数据的有效性,但是却降低数据库的可用性,动态转储可以提高数据库的可用性,但数据的有效性得不到保证。为了保证数据的一致性,需使用日志文件和动态转储结合使用。
数据转储机制
(1)完全转储。完全转储是对数据库中所有数据进行转储。这种转储方式需占用较多的时间和空间。
(2)差量转储。差量转储是对最近一次数据库完全转储以来发生的数据库变化进行转储。差量转储和完全转储相比速度快,占用较小的空间小;差量转储和增量转储相比,速度慢、占用空间多,但恢复速度比增量转储快。
(3)增量转储。增量转储只复制上次转储后发生变化的文件或数据块。增量转储所需的时间和空间都比较短,但增量转储数据只能和完全转储配合,才能对数据库进行恢复。增量转储的恢复时间要比仅使用完全转储要长。
日志文件
日志文件的概念
在动态转储方式中必须建立日志文件
在静态转储方式中,也可以使用日志文件
日志文件的格式与内容
不同的数据库系统采用的日志文件格式并不完全一样,但概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。
登记日志文件的原则
为保证数据库是可恢复的,登记日志文件必须遵循两条原则:
①登记的次序严格按照并行事务执行的时间顺序;
②必须先写日志文件,后写数据库。
检查点
恢复子系统可以定期或不定期地建立检查点来保存数据库状态。
数据库镜像与数据库容灾
数据库镜像简介
数据库镜像有许多优点,具体如下:
①数据库镜像提供完整或接近完整的数据冗余,增强数据保护功能。
②发生灾难时,数据库镜像可快速使数据库的备用副本提供服务,使数据不会丢失,提高数据库的可用性。
③提高镜像数据库在升级期间的可用性。