更新时间:2022-09-05 19:16:05
SQL> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> select * from v$diag_info where name='Default Trace File';
INST_ID NAME VALUE
---------- -------------------- --------------------------------------------------------------------------------------
1 Default Trace File /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_2878_local.trc
create table t1 as select * from dba_objects;
create table t2 as select * from t1;
create table t3 as select * from t1 where 1=0;
create index i_t1_object_id on t1(object_id);
alter system switch logfile ;
SQL> alter system checkpoint;
System altered.
SQL> select * from v$log order by group#;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------------- ------------ -------------------
1 1 424 52428800 512 1 YES INACTIVE 3229333374 2013-05-20 10:07:58 3229337621 2013-05-20 10:08:36
2 1 425 52428800 512 1 YES INACTIVE 3229337621 2013-05-20 10:08:36 3229338070 2013-05-20 10:12:25
3 1 426 52428800 512 1 NO CURRENT 3229338070 2013-05-20 10:12:25 2.8147E+14
delete from t1;
commit;
update t2 set OBJECT_NAME=lower(OBJECT_NAME);
commit ;
insert into t3 select * from t2;
commit ;
alter system switch logfile ;
SQL> select * from v$logfile order by group#;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ---------------------------------------- ------------------------------------------------------------ ---
1 ONLINE /u01/app/oracle11g/oradata/test/redo01.log NO
2 ONLINE /u01/app/oracle11g/oradata/test/redo02.log NO
3 ONLINE /u01/app/oracle11g/oradata/test/redo03.log NO
SQL> select * from v$log order by group#;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------------- ------------ -------------------
1 1 427 52428800 512 1 YES ACTIVE 3229342316 2013-05-20 10:14:06 3229345486 2013-05-20 10:14:09
2 1 428 52428800 512 1 NO CURRENT 3229345486 2013-05-20 10:14:09 2.8147E+14
3 1 426 52428800 512 1 YES ACTIVE 3229338070 2013-05-20 10:12:25 3229342316 2013-05-20 10:14:06--从结果可以看出使用redo sequence是426以及427,两个redo文件.(当前是428).
sql> alter system dump logfile '/u01/app/oracle11g/oradata/test/redo03.log';
sql> alter system dump logfile '/u01/app/oracle11g/oradata/test/redo01.log';
$ perl redo_summary.pl /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_2878_local.trc
OBJECT_ID REDO_SIZE
274946 31144940
274945 29023956
274948 16169668
274947 8666276
NON-OBJECT REDO 650224
1 13820
0 5132
68377 2332
289 2096
14 1388
383 1372
67679 1352
287 1096
4 808
132 528
133 240
SQL> select object_name,object_id,data_object_id from dba_objects where wner=user and object_name like 'T_' or object_name ='I_T1_OBJECT_ID'order by 1;
OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
-------------------- ---------- --------------
I_T1_OBJECT_ID 274948 274948
T1 274945 274945
T2 274946 274946
T3 274947 274947
SQL> select * from v$diag_info where name='Default Trace File';
INST_ID NAME VALUE
---------- -------------------- --------------------------------------------------------------------------------------
1 Default Trace File /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_3733_local.trc
$ mkfifo /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_3733_local.trc
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------- --------- ---------------------------------------
log_archive_dest_1 string LOCATION=/u01/app/oracle11g/archivelog
$ ls -l /u01/app/oracle11g/archivelog/1_42[67]_798551880.dbf
-rw-r----- 1 oracle11g oinstall 46671360 2013-05-20 10:14:07 /u01/app/oracle11g/archivelog/1_426_798551880.dbf
-rw-r----- 1 oracle11g oinstall 41971712 2013-05-20 10:14:09 /u01/app/oracle11g/archivelog/1_427_798551880.dbf
$ perl redo_summary.pl /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_3733_local.trc
sql> alter system dump logfile '/u01/app/oracle11g/archivelog/1_426_798551880.dbf';
sql> alter system dump logfile '/u01/app/oracle11g/archivelog/1_426_798551880.dbf';
SQL> alter system dump logfile '/u01/app/oracle11g/archivelog/1_426_798551880.dbf';
alter system dump logfile '/u01/app/oracle11g/archivelog/1_426_798551880.dbf'
*
ERROR at line 1:
ORA-48186: OS check file exists system call failure
Additional information: 3
--11G不行.还是采用文件的方式.
$ perl redo_summary.pl /u01/app/oracle11g/diag/rdbms/test/test/trace/test_ora_3733_local.trc
OBJECT_ID REDO_SIZE
274946 31144940
274945 29023956
274948 16169668
274947 8666276
NON-OBJECT REDO 650224
1 13820
0 5132
68377 2332
289 2096
14 1388
383 1372
67679 1352
287 1096
4 808
132 528
133 240