ORACLE培训教程2 _数据库安全、完整性、并发控制和恢复
在实例起动时,通过参数LOG-ARCHIVE-START设置,可启动ARCH进程,否则ARCH进程在实例启动时不能被启动。然而DBA在凭借时候可交互地启动或停止自动归档。 一旦在线日志文件组变为不活动时,ARCH进程自动对它归档。
如果数据库在ARCHIVELOG方式下运行,DBA可手工归档填满的不活动的日志文件组,不管自动归档是可以还是不可以。
4) 数据库后备
不管为ORACLE数据库设计成什么样的后备或恢复模式,数据库数据文件、日志文件和控制文件的操作系统后备是绝对需要的,它是保护介质故障的策略部分。操作系统后备有完全后备和部分后备
? 完全后备:一个完全后备将构成ORACLE数据库的全部数据库文件、在线日志文件和控制文件的一个操作系统后备。一个完全后备在数据库正常关闭之后进行,不能在实例故障后进行。在此时,所有构成数据库的全部文件是关闭的,并与当前点相一致。在数据库打开时不能进行完全后备。由完全后备得到的数据文件在任何类型的介质恢复模式中是有用的。
? 部分后备
部分后备为除完全后备外的任何操作系统后备,可在数据库打开或关闭下进行。如单个表空间中全部数据文件后备、单个数据文件后备和控制文件后备。部分后备仅对在ARCHIVELOG方式下运行数据库有用,因为存在的归档日志,数据文件可由部分后备恢复。在恢复过
阿哲 26/29
ORACLE培训教程2 _数据库安全、完整性、并发控制和恢复
程中与数据库其它部分一致。
5) 数据库恢复 ? 实例故障的恢复
当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复一故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况ORACLE在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:
(1)为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。 (3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
? 介质故障的恢复
介质故障是当一个文件、一个文件的部分或一磁盘不能读或不能写时出现的故障。介质故障的恢复有两种形式,决定于数据库运行的归档方式。
? 如果数据库是可运行的,以致它的在线日志仅可重用但不能归档,此时介质恢复为使用最新的完全后备的简单恢复。在完全后备
阿哲 27/29
ORACLE培训教程2 _数据库安全、完整性、并发控制和恢复
执行的工作必须手工地重作。
? 如果数据库可运行,其在线日志是被归档的,该介质故障的恢复是一个实际恢复过程,重构受损的数据库恢复到介质故障前的一个指定事务一致状态。
不管哪种形式,介质故障的恢复总是将整个数据库恢复到故障之前的一个事务一致状态。如果数据库是在ARCHIVELOG方式运行,可有不同类型的介质恢复:完全介质恢复和不完全介质恢复。
完全介质恢复可恢复全部丢失的修改。仅当所有必要的日志可用时才可能。有不同类型的完全介质恢复可使用,其决定于毁坏文件和数据库的可用性。例:
? 关闭数据库的恢复。当数据库可被装配却是关闭的,完全不能正常使用,此时可进行全部的或单个毁坏数据文件的完全介质恢复。
? 打开数据库的离线表空间的恢复。当数据库是打开的,完全介质恢复可以处理。未损的数据库表空间是在线的可以使用,而受损耗捕空间是离线的,其所有数据文件作为恢复的单位。
? 打开数据库的离线表间的单个数据文件的恢复。当数据库是打开的,完全介质恢复可以处理。未损的数据库表空间是在线的可以使用,而所损的表空间是离线的,该表空间的指定所损的数据文件可被恢复。
? 使用后备的控制文件的完全介质恢复。当控制文件所有拷贝由于磁盘故障而受损时,可进行介质恢复而不丢失数据。
阿哲 28/29
ORACLE培训教程2 _数据库安全、完整性、并发控制和恢复
不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。
基于撤消恢复:在某种情况,不完全介质恢复必须被控制,DBA可撤消在指定点的操作。基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复操作。
基于时间和基于修改的恢复:如果DBA希望恢复到过去的某个指定点,不完全介质恢复地理想的。可在下列情况下使用:
? 当用户意外地删除一表,并注意到错误提交的估计时间,DBA可立即关闭数据库,恢复它到用户错误之前时刻。
? 由于系统故障,一个在线日志文件的部分被破坏,所以活动的日志文件突然不可使用,实例被中止,此时需要介质恢复。在恢复中可使用当前在线日志文件的未损部分,DBA利用基于时间的恢复,一旦有将效的在线日志已应用于数据文件后停止恢复过程。
在这两种情况下,不完全介质恢复的终点可由时间点或系统修改号(SCN)来指定。
阿哲 29/29