设为首页 收藏本站
查看: 616|回复: 0

[经验分享] Oracle 数据字典之x$kcccp

[复制链接]

尚未签到

发表于 2016-7-27 06:31:06 | 显示全部楼层 |阅读模式
x$kcccp顾名思义为kernel cache checkpoint progress.
X$KCCCP--[K]ernel [C]ache [C]ontrolfile management [c]heckpoint [p]rogress
metalink 22241.1详细记录了x$表名缩写含义。现在已被Oracle从metalink上撤销掉了。首先看一下x$kcccp的结构,注意其黑体部分。CPODR_SEQ表示当前redolog的sequence,CPODR_BNO表示当前redolog写至哪个块,CPHBT表示ckpt 的heart beat点。
引用
SQL> desc x$kcccp
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ADDR                                               RAW(4)
INDX                                               NUMBER
INST_ID                                            NUMBER
CPTNO                                              NUMBER
CPSTA                                              NUMBER
CPFLG                                              NUMBER
CPDRT                                              NUMBER
CPRDB                                              NUMBER
CPLRBA_SEQ                                         NUMBER
CPLRBA_BNO                                         NUMBER
CPLRBA_BOF                                         NUMBER
CPODR_SEQ                                          NUMBER
CPODR_BNO                                          NUMBER

CPODR_BOF                                          NUMBER
CPODS                                              VARCHAR2(16)
CPODT                                              VARCHAR2(20)
CPODT_I                                            NUMBER
CPHBT                                              NUMBER
CPRLS                                              VARCHAR2(16)
CPRLC                                              NUMBER
CPMID                                              NUMBER
CPSDR_SEQ                                          NUMBER
CPSDR_BNO                                          NUMBER
CPSDR_ADB                                          NUMBER


通过以下SQL可以查询到生产库lgwr进程已经写至current redolog的哪一个块。
引用
SQL> select  le.leseq  CURRENT_LOG_SEQUENCE#,cp.CPODR_BNO
  2  from x$kcccp cp,x$kccle le
  3  where LE.leseq =CP.cpodr_seq
  4  and le. INST_ID=1;

CURRENT_LOG_SEQUENCE#  CPODR_BNO
--------------------- ----------
                57858        283


如果生产库搭建了dataguard,并用rfs传输onlineredolog,在备份库是查不出standby redolog写到了哪一个块
引用
SQL> select  le.leseq  CURRENT_LOG_SEQUENCE#,cp.CPODR_BNO
  2  from x$kcccp cp,x$kccle le
  3  where LE.leseq =CP.cpodr_seq
  4  and le. INST_ID=1;

no rows selected


在备份库仅仅记录了上次open时redolog的利用状态
引用

SQL> select CPODR_SEQ,CPODR_BNO,CPODR_BOF from x$kcccp ;

CPODR_SEQ  CPODR_BNO  CPODR_BOF
---------- ---------- ----------
     53682          2          0


当然了x$kcccp是ckpt进程触发写的,记录在controlfile中,可以在mount状态下查询得到,并在备份库可以看到CPHBT不停的更新,一般是3秒钟更新一次
引用
SQL> select open_mode from v$database;

OPEN_MODE
----------
MOUNTED

SQL> select  CPHBT from x$kcccp;

     CPHBT
----------
692394230
         0
         0
         0
         0
         0
         0
         0

8 rows selected.

SQL> /

     CPHBT
----------
692394231
         0
         0
         0
         0
         0
         0
         0


x$kcccp在很多情况作为Oracle视图的基表,以下就是gv$thread的一个例子
引用
select rt.inst_id,rtnum,decode(bitand(rtsta,1),1,'OPEN','CLOSED'), decode(bitand(rtsta,6),0,'DISABLED',2,'PRIVATE',6,'PUBLIC','UNKNOWN'), rtnlf,tirsid,to_date(rtots,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), rtcln,rtseq, to_number(rtckp_scn), to_date(rtckp_tim,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), to_number(rtenb), to_date(rtets,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), to_number(rtdis), to_date(rtdit,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), cpodr_seq, cpodr_bno, to_number(cpods), to_date(cpodt,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian') from x$kccrt rt, x$kcctir tr, x$kcccp  where rtnlf != 0 and tr.inst_id = rt.inst_id  and tirnum = rtnum and cptno = rtnum

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249846-1-1.html 上篇帖子: ORACLE switch logfile更新ckpt研究 下篇帖子: oracle SQL里常用的时间函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表