今天是2014-05-27,实在无聊顺便研究一下x$kccle的内容吧。如下全部是自己分析和实验结果,真实可靠。
1、如何获得v$log的底层表?我们可以通过autotrace完成查看如:
SQL> set autotrace trace exp
SQL> set linesize 200
SQL> select * from v$log;
Execution Plan
----------------------------------------------------------
Plan hash value: 2536105608
--------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 197 | 0 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 197 | 0 (0)| 00:00:01 |
|* 2 | FIXED TABLE FULL | X$KCCLE | 1 | 148 | 0 (0)| 00:00:01 |
|* 3 | FIXED TABLE FIXED INDEX| X$KCCRT (ind:1) | 1 | 49 | 0 (0)| 00:00:01 |
--------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("LE"."LEDUP"<>0 AND "LE"."INST_ID"=USERENV('INSTANCE'))
3 - filter("RT"."INST_ID"=USERENV('INSTANCE') AND "LE"."LETHR"="RT"."RTNUM")
SQL>
可以知道当我们在查看v$log视图的时候,其实就是查看的x$kccle视图字段信息。查看该视图如下:
SQL> desc x$kccle
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDR RAW(8)
INDX NUMBER
INST_ID NUMBER 实例号
LENUM NUMBER 类似group_number
LESIZ NUMBER logfile的size,是操作系统的blocks数目
LESEQ NUMBER v$log中的SEQUENCE#
LEHWS NUMBER
LEBSZ NUMBER block size(操作系统的块)
LENAB NUMBER
LEFLG NUMBER 表示日志的状态信息
LETHR NUMBER v$log中的THREAD#
LELFF NUMBER 下一个logfile
LELFB NUMBER 前一个logfile
LELOS VARCHAR2(16) low scn类似v$log FIRST_CHANGE#
LELOT VARCHAR2(20) low time类似v$log FIRST_TIME
LENXS VARCHAR2(16) nex scn 类似v$log中下一个logfile的low FIRST_CHANGE#相同
LENXT VARCHAR2(20) nex time类似v$log中下一个logfile的low FIRST_TIME 相同
LEPVS VARCHAR2(16) prev scn, 与上一个logfile的low scn
LEARF NUMBER archive link forward
LEARB NUMBER archive link backward
LEFNH NUMBER
LEFNT NUMBER
LEDUP NUMBER 等同于v$log中members
SQL>
下面对比一下:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------
1 1 2944 104857600 1 YES INACTIVE 121424676 21-MAY-14
2 1 2945 104857600 1 NO CURRENT 121427428 21-MAY-14
3 1 2943 104857600 1 YES INACTIVE 121421889 21-MAY-14
SQL>
SQL> select inst_id,lenum,lesiz,leseq,lehws,lebsz,lebsz*lesiz log_size,lenab,leflg,lethr,lelff,lelfb,lelos from x$kccle;
INST_ID LENUM LESIZ LESEQ LEHWS LEBSZ LOG_SIZE LENAB LEFLG LETHR LELFF LELFB LELOS
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------
1 1 204800 2944 2 512 104857600 190256 1 1 2 0 121424676
1 2 204800 2945 1 512 104857600 4294967295 8 1 3 1 121427428
1 3 204800 2943 2 512 104857600 190256 1 1 0 2 121421889
SQL>
SQL> select inst_id,lenum,leseq,lethr,lelot,lenxs,lenxt,lepvs,learf,learb,lefnh,lefnt,ledup from x$kccle;
INST_ID LENUM LESEQ LETHR LELOT LENXS LENXT LEPVS LEARF LEARB LEFNH LEFNT LEDUP
---------- ----- ----- ---------- -------------------- ---------------- -------------------- ---------------- ---------- ---------- ---------- ---------- ----------
1 1 2944 1 05/21/2014 11:26:42 121427428 05/21/2014 11:26:5