您的位置:首页 > 数据库 > Oracle

Oracle 联机重做日志文件(online log file)

2014-11-08 08:42 357 查看
介绍

文件位置

文件状态/切换

        查看状态:SQL> SELECT * FROM v$log;

        日志切换:alter system switch logfile :不等待归档完成就switch logfile。如果database尚未开启archive log
mode。那用这个切换是毋庸置疑了。另外,也是对单实例database和RAC模式下当前实例执行日志切换。 alter system archive log current:需要等待归档完成才switch logfile。会对中所有实例执行日志切换。

  在日志切换时对于unused组将优先作为下一组切换对象
     
SEQUENCE: 对应的序列号,重做日志组写满了或者是通过手工switch logfile后都是会切换的(切换后的日志组的log sequence number为前一个日志组加一,当使用reset logs打开数据库时,则log sequence number重置为1)。

       FIRST_CHANGE#:这里就是最小的SCN号了,这个是给实例恢复使用的。

  
GROUP#:组号

   MEMBERS :成员数

       STATUS:

            UNUSED:从未对该联机日志写入任何内容,一般为新增加联机日志文件或是使用resetlog后的状态

            CURRENT:当前重做日志文件,表示该重做日志文件为活动状态,能够被打开和关闭

            ACTIVE:处于活动状态,不属于当前日志,崩溃恢复需要该状态,可用于块恢复,可能归档,也可能未归档

            CLEARING:表示在执行alter database clear logfile命令后正将该日志重建为一个空日志,重建后状态变为unused

            CLEARING_CURRENT:当前日志处于关闭线程的清除状态。如日志某些故障或写入新日志标头时发生I/O错误

            INACTIVE:实例恢复不在需要联机重做文件日志组,可能归档也可能未归档

增加日志文件

           SQL> ALTER DATABASE ADD LOGFILE MEMBER
'D:\oracle\product\10.2.0\oradata\MyOracle01\MyOracle\redo1.log' TO GROUP 1;

                       将日志文件redo1.log增加到日志组1。

删除日志文件 

        不能删除组内的唯一一个成员

        不能删除处于active 和current 状态组内的成员

        删除处于active 和current 状态组内的成员,应使用日志切换使其处于INACTIVE状态后再删除

        对于组内如果一个成员为NULL 值,一个为INVALID,且组处入INACTIVE,仅能删除INVALID状态成员

        删除日志成员,物理文件并没有真正删除,需要手动删除

        删除日志文件后,控制文件被更新

        对于处于归档模式下的数据库,删除成员时确保日志已被归档,查看v$log视图获得归档信息

        ALTER DATABASE DROP LOGFILE MEMBER '地址'

        SQL>  ALTER DATABASE DROP LOGFILE MEMBER
'D:\oracle\product\10.2.0\oradata\MyOracle01\MyOracle\redo1.log'

        第 1 行出现错误:

        ORA-01609: 日志 1 是线程 1 的当前日志 - 无法删除成员

        ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORACLE01\MYORACLE\REDO01.LOG'

        ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORACLE01\MYORACLE\REDO1.LOG'

        ALTER SYSTEM SWITCH LOGFILE; ---切换工作组,再次执行上面命令成功删除。

增加日志文件组

      SQL>  alter database add logfile group 4 'D:\oracle\product\10.2.0\oradata\MyOracle01\MyOracle\redo04.log' size 100M;

                   新增日志组4,成员为redo04

删除日志文件组

      只有当状态为inactvie时方可删除

      SQL>ALTER DATABASE DROP LOGFILE GROUP 4;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: