简介
系统恢复是把数据库由存在故障的状态转变为某一已知的无故障状态的过程。在数据库管理系统中,数据库恢复子系统是其中一个重要的组成部分,而数据库系统发生故障的原因是多方面的: 人为的和非人为的,事务内部和外部的 ,系统范围内和系统范围外的等等因素都可以造成数据库故障。如: 计算机主板上的芯片不能正常工作,会导致计算机系统不能正常工作,一般不会导致应用和数据的损坏。但如果计算机的硬盘损坏,将会导致数据丢失。特别是当前随着办公自动化和电子商务的飞速发展,企业对信息系统的依赖性越来越高,数据库作为信息系统的核心担当着重要的角色 。数据库资源是业和社会一种无可替代的财富,尤其在军事领域 、银行、证券等行业,如果发生意外的数据丢失将会危及到国家安全和国民生计。数据库恢复逐渐被学术界所重视,一个完善的数据库恢复策略和方案会给社会和企业大大降低人力物力、财力的消耗。
数据库系统数据库系统是指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
数据库系统是一个由硬件、软件(操作系统、数据库管理系统和编译系统等)、数据库和用户构成的完整计算机应用系统。数据库是数据库系统的核心和管理对象。因此,数据库系统的含义已经不仅仅是一个对数据进行管理的软件,也不仅仅是一个数据库,数据库系统是一个实际运行的,按照数据库方式存储、维护和向应用系统提供数据支持的系统1。
恢复策略备份策略该策略是把数据库复制到转储设备的过程 。转储设备是指用于放置数据库拷贝的磁带或磁盘,通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。转储是十分消耗时间和资源的,不能频繁进行。备份可分为一致性备份( consistent backup) 和不一致性备份( inconsistentbackup) 两种 。一般习惯于进行物理备份,物理备份是数据库文件拷贝的备份,冷备份、热备份属于物理备份。冷备份是在数据库被正常关闭之后进行的数据文件的物理备份 。当数据库被关闭时,被数据库使用的每一个文件都被备份下来,这些文件因而保持着数据关闭时的完整的映象。热备份是在数据库运行的情况下,采用某种特定的( 如 :archivelog mode) 方式备份数据的方法 。这涉及到将每个表空间设置为备份状态,然后备份其数据文件,最后将表空间恢复成正常的状态。数据库可以从这个备份中完全地恢复过来,也可以通过归档的重做日志回滚到前面时间的任一个点上。
重新处理策略该策略是对事务进行重新处理。尽管重新处理不能精确地恢复到某一点,但都可以回到某个已知点,并从那里开始重新执行。这类恢复最简单形式是定期对数据库进行备份,保持自备份以来所有处理过的事务记录。这样在故障发生时,操作员就可以从备份中恢复数据库 ,重新执行所有事务。在实际应用过程中,却难以实施。因为一方面,重新处理事务与第一次处理这些事务耗费的时间是一样的。如果计算机调度繁重,系统就可能永远执行不完;另一方面,当事务并发处理时,事件不能同时执行。人类活动中的微小变化都可能改变并发事务的执行次序。因此,重新处理很少作为恢复技术在并发系统中使用。
前向回滚/后向回滚策略该策略是采取定期对数据库进行备份,并保持自备份以来的事务对数据库的改变。这种方式需要保持事务结果的日志( log)。回滚段用于存放数据修改之前的值( 包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。当事务正在处理的时候,回滚段的信息保存在重做日志文件中。当前回滚段区的所有块用完而事务还需要更多的回滚空间时,回滚段的指针将移到下一个区。当最后一个区用完, 指针将移到第一个区的前面。当下一个区正在使用时,事务将为回滚段分配一个新的区 , 这种分配称为回滚段的扩展。回滚段将一直扩展到该回滚段区的个数到达回滚段的参数 MAXEXTENTS 的值时为止。在此过程中,事务存储点提供了一种机制,用于回滚部分事务。因此,我们可以不必在更新之前检查更新的有效性 ,而是预设一个存储点,在更新之后,如果没有出现错误,就继续执行 ,否则回滚到更新之前的存储点。存储点的作用就在于此。更新和回滚代价很大,只有在遇到错误的可能性很小,而且预先检查更新的有效性的代价相对很高的情况下,使用存储点才会非常有效。在这,DBMS 提供了检查点( checkpoint) 的机制,它提供了数据库和事务日志间的同步点。从某种意义上讲,检查点是一种低代价操作。
数据库镜像策略该策略一般是根据 DBA 要求,自动把整个数据库或其中之一的关键数据复制到另一个磁盘上。当主数据库更新时,DBMS 自动把更新后的数据库或其中的关键数据复制过去,始终使镜像数据和主数据保持一致性。出现故障时,可由镜像磁盘继续提供使用,同时 DBMS 自动利用镜像磁盘数据进行数据库的恢复。由于数据镜像是通过复制数据实现的,频繁地复制数据会降低系统运行效率。因此,在实际应用过程中,只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像。一般来讲,该策略主要针对介质故障( 介质故障是对系统影响最为严重的一种故障) 。
方式事前预测规范事前防范主要通过数据隔离、加密、过滤、管理、备份等技术,加强整个网络数据库的健壮性。事前预测规范也是建立在”冗余”原理基础上的,这种冗余主要体现在资源的消耗和大量的前期工作。如在数据库应用前做好数据库的标准化和规范工作,建立数据备份冗余途径 ,制订预防数据库损坏的备份方案等等。在设备可靠性方面,可以采取热插拔、热备份,同时设备的交换网络、路由处理系统等所有关键部件采用冗余热备份设计,满足网络对设备高可靠性的要求。在数据库组网设计时,在骨干节点采取双机备份等方式进行环网自愈保护,接入骨干传输网的链路可采取双归链路等设计进行环网自愈保护,从组网角度避免单网点故障。另外,还可采用备份中心技术,为路由器上的任意接口提供备份接口,路由器上的任一接口可以作为其它接口( 或逻辑链路)的备份接口,可对接口上的某条逻辑链路提供备份。通过灵活的备份机制及完善的技术,可以充分利用备份资源,确保网络互联互通的可靠性。以上列举的有效防范措施不仅能减少数据库的损坏,更重要的在发生相应故障时能尽可能降低恢复成本,最大限度地达到完全恢复的效果2。
事中监测预警事中监测预警是指在数据库应用过程中,监测各个数据传递和处理过程,监测各个软硬件数据处理的性能等等从而达到有效预警效果。在这种情况下,数据库在运行,但是在运行时能监测到部分数据的不正确,从而发现问题及时进行采取有效措施使数据损坏降低到最小范围。在此机制下,相应的数据信息反馈能获取可能发生的问题大小和范围,为下一步工作提供有效的信息支持,以便做好相应的补救工作。如在数据库网络中可以通过建立数据库网络的数量庞大动态发现、动态拓扑生成、自动配置的功能,从而降低网络数据库恢复的工作量,提高数据库系统恢复工作效率。
事后弥补核实事后弥补核实是在数据库发生损坏后,进行数据库恢复,尽力进行补救工作。在数据库恢复过程中必须采取各种措施进行合理组合,力争以最大限度和最有效的方式进行数据库恢复。比如,日志记录等功能就是一个非常良好的追溯手段,在出现问题时可以根据记录迅速查找源头,防止事态进一步扩大。日志记录仅限于在应用层的服务器,在网络数据库中必须提供在网络级做日志记录的能力,可以定位到端口,从而确定物理地点与时间,将会给后期进一步查明真相带来很大的帮助。数据库恢复后必须进行有效核实,抽查关键数据进行核对,确保恢复效果。