ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 控制文件/归档日志

控制文件/归档日志

原创 Linux操作系统 作者:jerryhui 时间:2009-03-12 15:16:33 0 删除 编辑

控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。当使用Oracle Server时,一个例程只能访问一个数据库,Oracle正是通过控制文件在例程和数据库之间建立关联的。当装载数据库时,Oracle会根据初始化参数control_files来定位控制文件;当打开数据库时,Oracle会依据控制文件所记载的信息打开所有数据文件和重做日志。在控制文件中记载的信息如图2-6所示:

控制文件:-》 数据文件的位置大小  重做日志文件的位置及大小 数据库名称及创建时间   日志序列号

通过查询动态性能视图V$CONTROLFILE,可以显示当前数据库的所有控制文件。示例如下:

SQL> SELECT name from V$controlfile;

NAME

D:\DEMO\CONTROL01.CTL

归档日志(Archived Redo Log)

归档日志是非活动重做日志的备份。通过使用归档日志,可以保留所有重做历史记录。当数据库出现介质失败时,使用数据文件副本和重做历史记录可以完全恢复数据库。注意,只有在ARCHIVELOG模式下才会生成归档日志,并且当进行日志切换时,Oracle可以自动生成归档日志。

假定数据库只包含两个日志组,并且处于ARCHIVELOG模式。初始阶段LGWR会将事务变化写入到日志组一。当日志组一写满之后,LGWR会将事务变化写入到日志组二,并且会促使ARCH进程将日志组一的内容保存到归档日志。依此类推,在RAC环境中,每个重做线程都会生成相应的归档日志。通过查询动态性能视图V$ARCHIVED_LOG,可以显示特定重做线程所生成的归档日志信息。下面以显示重做线程1所生成的归档日志为例说明使用V$ARCHIVED_LOG的方法,示例如下:

SQL>col name format a42

SQL>SELECT name,first_change#,next_change# from v$archived_log where thread#=1;

NAME                               FIRST_CHANGE#                    NEXT_CHANGE#

D:\DEMO\ARCHIVE\ARC00021_0537091099.001       410415           412863

D:\DEMO\ARCHIVE\ARC00022_0537090100.001       412863           412866

如上所示,name用于标识归档日志文件名,first_change#对应于归档日志的起始SCN值,next_change#对应于下一个归档日志的起始SCN值。

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12035968/viewspace-567003/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 重做日志
请登录后发表评论 登录
全部评论

注册时间:2009-03-12

  • 博文量
    18
  • 访问量
    61751