在线日志文件学习

来源:互联网 发布:营销地图软件 编辑:程序博客网 时间:2024/05/22 00:34
=======redo log file=======bash-2.05b$ sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.4.0 - Production on Fri Apr 17 16:22:45 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit ProductionWith the OLAP optionJServer Release 9.2.0.4.0 - ProductionSQL> select thread#,status,instance from v$thread;   THREAD# STATUS INSTANCE---------- ------ ----------------         1 CLOSED xx1         2 OPEN   xx2                           SQL> col member format a50SQL> set pagesize 30SQL> select THREAD#,SEQUENCE#,BYTES,ARCHIVED,STATUS from v$log ;    #    THREAD#  SEQUENCE#      BYTES ARC STATUS---------- ---------- ---------- ---------- --- ----------------         1          1         57  251658240 YES INACTIVE         2          1         58  251658240 YES INACTIVE         3          1         59  251658240 YES INACTIVE         4          1         60  251658240 NO  CURRENT         5          2        178  251658240 NO  CURRENT         6          2        175  251658240 YES INACTIVE         7          2        177  251658240 YES INACTIVE         8          2        176  251658240 YES INACTIVE                  UNUSED - Online redo log has never been written to. This is the state of a redo log that was just added, or just after a RESETLOGS, when it is not the current redo log.CURRENT - Current redo log. This implies that the redo log is active. The redo log could be open or closed.ACTIVE - Log is active but is not the current log. It is needed for crash recovery. It may be in use for block recovery. It may or may not be archived.CLEARING - Log is being re-created as an empty log after an ALTER DATABASE CLEAR LOGFILE statement. After the log is cleared, the status changes to UNUSED.CLEARING_CURRENT - Current log is being cleared of a closed thread. The log can stay in this status if there is some failure in the switch such as an I/O error writing the new log header.INACTIVE - Log is no longer needed for instance recovery. It may be in use for media recovery. It might or might not be archived.CLEARING_CURRENT日志状态不常见可以通过下面的办法监控日志的每一个状态:创建一个监控表:create table test as (select STATUS from v$log where 1 = 0) ;设置一个开关:create table stop(x int);truncate table test;truncate table stop;监控:declare           l_n number;   begin           loop                   insert into test (    select STATUS from v$log    );                   commit;                   select count(*) into l_n from stop;                   exit when l_n > 0;           end loop;   end;/打开另一个session21 添加一个logfile2 切换一次3 ALTER DATABASE CLEAR LOGFILE GROUP 6;insert into stop values(1);commit;检查日志状态:select distinct STATUS from test;通过这种办法可以更好的理解日志的每一种状态SQL> alter database add logfile thread 2 group 7 'D:\LOG_DIR\REDO7A.LOG' size 10M;数据库已更改。SQL> alter database add logfile thread 2 group 8 'D:\LOG_DIR\REDO7B.LOG' size 10M;数据库已更改。SQL> alter database enable public thread 2;数据库已更改。SQL> select thread#,status,instance from v$thread;   THREAD# STATUS INSTANCE---------- ------ --------------------------------------------------------------------------------         1 OPEN   train         2 CLOSED UNNAMED_INSTANCE_2                                   SQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6 STALE   ONLINE  /dev/rredo1_61_n         6 STALE   ONLINE  /dev/rredo1_62_n         7 STALE   ONLINE  /dev/rredo1_71_n         7 STALE   ONLINE  /dev/rredo1_72_n         8 STALE   ONLINE  /dev/rredo1_81_n         8 STALE   ONLINE  /dev/rredo1_82_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_nINVALID - File is inaccessibleSTALE - File's contents are incompleteDELETED - File is no longer usednull - File is in use-------------------------------------------------SQL> alter system switch logfile;System altered.SQL> /System altered.SQL> /System altered.SQL> select #,THREAD#,SEQUENCE#,BYTES,ARCHIVED,STATUS from v$log;    #    THREAD#  SEQUENCE#      BYTES ARC STATUS---------- ---------- ---------- ---------- --- ----------------         1          1         61  251658240 NO  CURRENT         2          1         58  251658240 YES INACTIVE         3          1         59  251658240 YES INACTIVE         4          1         60  251658240 YES INACTIVE         5          2        178  251658240 YES INACTIVE         6          2        179  251658240 YES INACTIVE         7          2        181  251658240 NO  CURRENT         8          2        180  251658240 YES INACTIVE8 rows selected.-- drop logfile SQL> alter database drop logfile group 5;Database altered.SQL> select #,THREAD#,SEQUENCE#,BYTES,ARCHIVED,STATUS from v$log;    #    THREAD#  SEQUENCE#      BYTES ARC STATUS---------- ---------- ---------- ---------- --- ----------------         1          1         61  251658240 NO  CURRENT         2          1         58  251658240 YES INACTIVE         3          1         59  251658240 YES INACTIVE         4          1         60  251658240 YES INACTIVE         6          2        179  251658240 YES INACTIVE         7          2        181  251658240 NO  CURRENT         8          2        180  251658240 YES INACTIVE7 rows selected.-- add logfile SQL> alter database add logfile group 5 ('/dev/rredo1_51_n','/dev/rredo1_52_n') size 251658240 reuse;Database altered.SQL> select #,THREAD#,SEQUENCE#,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#      BYTES ARC STATUS---------- ---------- ---------- ---------- --- ----------------         5          2          0  251658240 YES UNUSED         6          2        179  251658240 YES INACTIVE         7          2        181  251658240 NO  CURRENT         8          2        180  251658240 YES INACTIVESQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6         ONLINE  /dev/rredo1_61_n         6         ONLINE  /dev/rredo1_62_n         7         ONLINE  /dev/rredo1_71_n         7         ONLINE  /dev/rredo1_72_n         8         ONLINE  /dev/rredo1_81_n         8         ONLINE  /dev/rredo1_82_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_n16 rows selected.-- drop logfile member SQL> alter database drop logfile member '/dev/rredo1_61_n' ;Database altered.SQL> select THREAD#,SEQUENCE#,MEMBERS,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#    MEMBERS      BYTES ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------         5          2          0          2  251658240 YES UNUSED         6          2        179          1  251658240 YES INACTIVE         7          2        181          2  251658240 NO  CURRENT         8          2        180          2  251658240 YES INACTIVESQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6         ONLINE  /dev/rredo1_62_n         7         ONLINE  /dev/rredo1_71_n         7         ONLINE  /dev/rredo1_72_n         8         ONLINE  /dev/rredo1_81_n         8         ONLINE  /dev/rredo1_82_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_n15 rows selected.-- add logfile member           SQL> alter database add logfile member '/dev/rredo1_61_n' to group 6;Database altered.SQL> select #,THREAD#,SEQUENCE#,MEMBERS,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#    MEMBERS      BYTES ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------         5          2          0          2  251658240 YES UNUSED         6          2        179          2  251658240 YES INACTIVE         7          2        181          2  251658240 NO  CURRENT         8          2        180          2  251658240 YES INACTIVESQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6 INVALID ONLINE  /dev/rredo1_61_n         6         ONLINE  /dev/rredo1_62_n         7         ONLINE  /dev/rredo1_71_n         7         ONLINE  /dev/rredo1_72_n         8         ONLINE  /dev/rredo1_81_n         8         ONLINE  /dev/rredo1_82_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_n16 rows selected.SQL> alter system switch logfile;System altered.SQL> /System altered.SQL> /System altered.SQL> /System altered.SQL> /System altered.SQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6         ONLINE  /dev/rredo1_61_n         6         ONLINE  /dev/rredo1_62_n         7         ONLINE  /dev/rredo1_71_n         7         ONLINE  /dev/rredo1_72_n         8         ONLINE  /dev/rredo1_81_n         8         ONLINE  /dev/rredo1_82_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_n16 rows selected.SQL> select #,THREAD#,SEQUENCE#,MEMBERS,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#    MEMBERS      BYTES ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------         5          2        186          2  251658240 NO  CURRENT         6          2        183          2  251658240 YES INACTIVE         7          2        185          2  251658240 YES INACTIVE         8          2        184          2  251658240 YES INACTIVE         SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.bash-2.05b$ lspv -Lhdisk0          0052db8d1d6c6d1a                    rootvg         hdisk1          0052db8d20ff9621                    rootvg         hdisk2          0052db8d2103e69d                    datavg         hdisk3          0052db8d2106f554                    datavg         bash-2.05b$ lspv hdisk2 PHYSICAL VOLUME:    hdisk2                   VOLUME :     datavgPV IDENTIFIER:      0052db8d2103e69d VG IDENTIFIER     0052db8d00004c00000000fe2103f6b6PV STATE:           active                                     STALE PARTITIONS:   0                        ALLOCATABLE:      yesPP SIZE:            256 megabyte(s)          LOGICAL VOLUMES:  29TOTAL PPs:          546 (139776 megabytes)   VG DESCRIPTORS:   2FREE PPs:           58 (14848 megabytes)     HOT SPARE:        noUSED PPs:           488 (124928 megabytes)                     FREE DISTRIBUTION:  00..00..00..00..58                         USED DISTRIBUTION:  110..109..109..109..51                     bash-2.05b$ lspv hdisk3PHYSICAL VOLUME:    hdisk3                   VOLUME :     datavgPV IDENTIFIER:      0052db8d2106f554 VG IDENTIFIER     0052db8d00004c00000000fe2103f6b6PV STATE:           active                                     STALE PARTITIONS:   0                        ALLOCATABLE:      yesPP SIZE:            256 megabyte(s)          LOGICAL VOLUMES:  40TOTAL PPs:          546 (139776 megabytes)   VG DESCRIPTORS:   1FREE PPs:           235 (60160 megabytes)    HOT SPARE:        noUSED PPs:           311 (79616 megabytes)                      FREE DISTRIBUTION:  04..00..13..109..109                       USED DISTRIBUTION:  106..109..96..00..00                       bash-2.05b$ mklv -y 'redo1_83_n' -t 'raw' datavg 1 hdisk3redo1_83_nbash-2.05b$ lslv redo1_83_nLOGICAL VOLUME:     redo1_83_n             VOLUME :   datavgLV IDENTIFIER:      0052db8d00004c00000000fe2103f6b6.68 PERMISSION:     read/writeVG STATE:           active/complete        LV STATE:       closed/syncdTYPE:               raw                    WRITE VERIFY:   offMAX LPs:            512                    PP SIZE:        256 megabyte(s)COPIES:             1                      SCHED POLICY:   parallelLPs:                1                      PPs:            1STALE PPs:          0                      BB POLICY:      relocatableINTER-POLICY:       minimum                RELOCATABLE:    yesINTRA-POLICY:       middle                 UPPER BOUND:    32MOUNT POINT:        N/A                    LABEL:          NoneMIRROR WRITE CONSISTENCY: on/ACTIVE                              EACH LP COPY ON A SEPARATE PV ?: yes            bash-2.05b$ dd if=/dev/rredo1_82_n of=/dev/rredo1_83_n bs=1024k256+0 records in.256+0 records out.SQL> startup mountORACLE instance started.Total System Global Area 1779928496 bytesFixed Size                   744880 bytesVariable Size            1107296256 bytesDatabase Buffers          671088640 bytesRedo Buffers                 798720 bytesDatabase mounted.SQL> alter database rename file '/dev/rredo1_82_n' to '/dev/rredo1_83_n' ;Database altered.SQL> alter database open;Database altered.SQL> col member format a50SQL> set pagesize 30SQL> select * from v$logfile;    # STATUS  TYPE    MEMBER---------- ------- ------- --------------------------------------------------         1         ONLINE  /dev/rredo1_11_n         1         ONLINE  /dev/rredo1_12_n         2         ONLINE  /dev/rredo1_21_n         2         ONLINE  /dev/rredo1_22_n         5         ONLINE  /dev/rredo1_51_n         5         ONLINE  /dev/rredo1_52_n         6         ONLINE  /dev/rredo1_61_n         6         ONLINE  /dev/rredo1_62_n         7         ONLINE  /dev/rredo1_71_n         7         ONLINE  /dev/rredo1_72_n         8         ONLINE  /dev/rredo1_81_n         8         ONLINE  /dev/rredo1_83_n         3         ONLINE  /dev/rredo1_31_n         3         ONLINE  /dev/rredo1_32_n         4         ONLINE  /dev/rredo1_41_n         4         ONLINE  /dev/rredo1_42_n16 rows selected.SQL> select #,THREAD#,SEQUENCE#,MEMBERS,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#    MEMBERS      BYTES ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------         5          2        186          2  251658240 NO  CURRENT         6          2        183          2  251658240 YES INACTIVE         7          2        185          2  251658240 YES INACTIVE         8          2        184          2  251658240 YES INACTIVESQL> alter system switch logfile;System altered.SQL> /System altered.SQL> /System altered.SQL> /System altered.SQL> /System altered.SQL> select #,THREAD#,SEQUENCE#,MEMBERS,BYTES,ARCHIVED,STATUS from v$log where THREAD#=2;    #    THREAD#  SEQUENCE#    MEMBERS      BYTES ARC STATUS---------- ---------- ---------- ---------- ---------- --- ----------------         5          2        190          2  251658240 YES INACTIVE         6          2        191          2  251658240 NO  CURRENT         7          2        189          2  251658240 YES INACTIVE         8          2        188          2  251658240 YES INACTIVE                           

原创粉丝点击