第一个查询说明该数据库有三个日志文件组。此时LGWR进程正在写的当前组是组1(status - current),其他两个组是不活动的。SEQUENCE#列说明从创建数据库以来(或者使用ALTER DATABASE OPEN RESETLOG重置日志顺序以来)总共发生过10次日志切换。MEMBER列说明每个组都由一个成员组成。
第二个查询显示了不同的联机重做日志文件。其中,每个文件都是由GROUP#标识的一个组的一部分,并且具有唯一的名称。STATUS列应当时钟为空。如果该成员未使用(原因通常是数据库刚打开,尚未发生日志切换),那么其状态为STALE,并且一直会持续到发生第一次日志切换时。如果日志文件成员的状态为INVALID,则说明存在问题。
命令lter system switch logfile强制执行日志切换。
最后一个查询说明在日志切换后,组2成为LGWR进程进行写操作的当前组,序列号切换为11。先前的当前组(组1)的状态变为ACTIVE,这以为着如果此时出现实例失败,SMON进程仍然需要使用组2来进行实例恢复。稍后,由于检查点位置前移,因此这个组的状态不久将变为INACTIVE。
为了防止数据库在联机重做日志文件组受到破坏时丢失数据,请准备多路复用副本。可以给每个日志文件组使用下面的命令,将多路复用副本添加到联机日志中:
alter database add logfile member 'D:\app\orale\oradata\redo01a.log' to group 1;
归档日志模式和归档器进程
将数据库改为归档日志模式能够确保:如果联机重做日志文件组没有首先被复制为归档日志文件,那么不能被重写。这样将存在一系列归档日志文件,这些文件描述了应用于数据库的所有变化的完整历史。如果一个数据文件在某个时刻被破坏,那么可以还原该数据文件的一个备份,并应用归档日志重做流中的变更,从而使这个数据文件是最新的。
在默认情况下,数据库时在非归档日志模式中创建的,这意味着日志切换在没有先进行复制的情况下会重写联机重做日志文件。此时数据库仍然不会受损,但是如果数据文件因为介质失败被损坏,那么会丢失数据。在数据库被转换至归档日志模式时,如果从最近一次数据库备份开始生成的所有归档日志文件都可用,那么不会丢失数据。
一旦数据库被转换至归档日志模式,就会自动启动一个新的后台进程:归档器进程ARCn。在默认情况下, Oracle会启动4个这样的进程,不过在实际应用中最多可以启动30个。
Oracle实例使用ARCn进程维护归档日志的创建过程,但是DBA必须通过使用操作系统命令或RMAN来控制到磁带的迁移过程。
数据库只有在干净关闭后处于加载模式时,才能转换至归档日志模式,并且必须由建立了SYSDBA连接的用户完成。此外,还必须设置若干初始化参数,来控制所生成的归档日志名称和位置。
配置快速恢复区
快速恢复区是一个磁盘目标,用作与恢复相关的文件的默认位置。可以使用两个实例参数对快速恢复区进行控制:
db_recovery_file_dest :指定位置。这可以使文件系统目录或ASM磁盘组。多个数据库可以共享一个公共目标;在目标中,每个数据库都有各自自动创建的目录结构。
db_recovery_file_dest_size :限制数据库将要在目标中占用的最大空间量,但不能说明目标中实际可用的空间大小。
快速恢复区的配置和使用在两个视图中显示:
v$recovery_file_dest
v$recovery_area_usage
写入快速恢复区(除非另外指定)的文件包括:
恢复管理器备份
归档重做日志文件
数据库闪回日志