drm 是Oracle rac中独有的动态资源管理操作, 我们听了很多关于DRM的理论, 但是你是否亲眼见证过DRM, 今天我们就来看一下:

SQL> select * from v$version;BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - ProductionSQL>
SQL> select count(*) from gv$instance;COUNT(*)
----------
2SQL> create table drm_mac(t1 int) tablespace users;Table created.SQL> insert into drm_mac values(1);1 row created.SQL> commit;Commit complete.SQL> alter system flush buffer_cache;System altered.SQL>select * from drm_mac;T1
----------
1SQL> select object_id,data_object_id from dba_objects where object_name='DRM_MAC';OBJECT_ID DATA_OBJECT_ID
---------- --------------
64046 64046--FIRST FIND THE OBJECT IDS
With OBJ_IDS As
(Select DATA_Object_Id OBJECT_ID From Dba_Objects
Where Object_Name = 'DRM_MAC'), --注意替换这里!!!!!!!!!!!!!!!!!
Addr As (Select /*+ materialize */
Le_Addr, class, state From X$Bh, OBJ_IDS
Where Object_Id = Obj),
--NOW GET THE RESOURCE NAME IN HEX
Hexnames As (Select
Rtrim(B.Kjblname, ' '||chr(0)) Hexname
From X$Le A, X$Kjbl B, Addr
Where A.Le_Kjbl=B.Kjbllockp
and class = 1 and state <> 3
And A.Le_Addr = Addr.Le_Addr)
-- NOW FIND THE NODE MASTERS
Select A.Master_Node Mast, Count(*)
From Gv$Dlm_Ress A, Hexnames H
Where
Rtrim(A.Resource_Name, ' '||chr(0)) = H.Hexname
Group by A.Master_Node;MAST COUNT(*)
---------- ----------
0 5==> 说明DRM_MAC MASTER 在0节点,共5个BLOCk登录 2节点对2节点的LMS进程做DRM TRACE
oradebug setospid 29295;
oradebug event trace[RAC_DRM] disk highest;之后使用 lkdebug -m pkey data_object_id 来手动出发对DRM_MAC的REMASTER操作注意即便是手动触发DRM也仅仅是将该OBJECT放入DRM ENQUEUE*** 2012-11-27 09:27:20.728
Processing Oradebug command 'lkdebug -m pkey 64045'
*****************************************************************
GLOBAL ENQUEUE SERVICE DEBUG INFORMATION
----------------------------------------
Queued DRM request for pkey 64045.0, tobe master 1, flags x1
***************** End of lkdebug output *************************
Processing Oradebug command 'lkdebug -m pkey 64045'
*****************************************************************
GLOBAL ENQUEUE SERVICE DEBUG INFORMATION
----------------------------------------
kjdrrmq: pkey 64045.0 is already on the affinity request queue, old tobe == new tobe 1
***************** End of lkdebug output *************************
SQL> oradebug setmypid
Statement processed.
SQL> oradebug lkdebug -m pkey 64046;--FIRST FIND THE OBJECT IDS
With OBJ_IDS As
(Select DATA_Object_Id OBJECT_ID From Dba_Objects
Where Object_Name = 'DRM_MAC'), --Customize
Addr As (Select /*+ materialize */
Le_Addr, class, state From X$Bh, OBJ_IDS
Where Object_Id = Obj),
--NOW GET THE RESOURCE NAME IN HEX
Hexnames As (Select
Rtrim(B.Kjblname, ' '||chr(0)) Hexname
From X$Le A, X$Kjbl B, Addr
Where A.Le_Kjbl=B.Kjbllockp
and class = 1 and state <> 3
And A.Le_Addr = Addr.Le_Addr)
-- NOW FIND THE NODE MASTERS
Select A.Master_Node Mast, Count(*)
From Gv$Dlm_Ress A, Hexnames H
Where
Rtrim(A.Resource_Name, ' '||chr(0)) = H.Hexname
Group by A.Master_Node;MAST COUNT(*)
---------- ----------
1 5通过 oradebug lkdebug -m pkey 将 MACLEAN_DRM REMASTER到2节点。
SQL> select * from v$gcspfmaster_info where DATA_OBJECT_ID=64045;
FILE_ID DATA_OBJECT_ID GC_MASTERIN CURRENT_MASTER PREVIOUS_MASTER REMASTER_CNT
---------- -------------- ----------- -------------- --------------- ------------
0 64046 Affinity 1 0 1SQL> select * from gv$policy_history
where DATA_OBJECT_ID=64046
order by EVENT_DATE;no rows selected
SQL> select * from x$object_policy_statistics;no rows selected*** 2013-11-15 04:08:35.191
2013-11-15 04:08:35.191065 : kjbldrmnextpkey: AFFINITY pkey 64046.0
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0
benefit 0, total 0, remote 0, cr benefit 0, cr total 0, cr remote 0
kjblpkeydrmqscchk: Begin for pkey 64046/0 bkt[0->8191] read-mostly 0
kjblpkeydrmqscchk: End for pkey 64046.0
2013-11-15 04:08:35.191312 : DRM(20) quiesced basts [0-8191]
2013-11-15 04:08:35.197815 :
* lms acks DRMFRZ (8191)
* lms 0 finished parallel drm freeze in DRM(20) window 1, pcount 47
DRM(20) win(1) lms 0 finished drm freeze
2013-11-15 04:08:35.200436 :
* kjbrrcres: In this window: 278 GCS resources, 0 remastered* In all windows: 278 GCS resources, 0 remastered
2013-11-15 04:08:35.201606 : kjbldrmnextpkey: AFFINITY pkey 64046.0
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0
benefit 0, total 0, remote 0, cr benefit 0, cr total 0, cr remote 0
kjbldrmrpst: no more locks for pkey 64046.0, #lk 0, #rm 0, #replay 0, #dup 0 objscan 4
DRM(20) Completed replay (highb 8191)
DRM(20) win(1) lms 0 finished replaying gcs resources
kjbmprlst: DRMFRZ replay msg from 1 (clockp 0x92f96c18, 3)
0x1fe6a.5, 64046.0, x0, lockseq 0x13c5, reqid 0x3
state 0x100, 1 -> 0, role 0x0, wrt 0x0.0
GCS RESOURCE 0xb28963a0 hashq [0xbb4cdd38,0xbb4cdd38] name[0x1fe6a.5] pkey 64046.0
grant 0xb19a8370 cvt (nil) send (nil)@0,0 write (nil),0@65536
flag 0x0 mdrole 0x1 mode 1 scan 0.0 role LOCAL
disk: 0x0000.00000000 write: 0x0000.00000000 cnt 0x0 hist 0x0
xid 0x0000.000.00000000 sid 0 pkwait 0s rmacks 0
refpcnt 0 weak: 0x0000.00000000
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0
benefit 0, total 0, remote 0, cr benefit 0, cr total 0, cr remote 0
hv 3 [stat 0x0, 1->1, wm 32768, RMno 0, reminc 3, dom 0]
kjga st 0x4, step 0.36.0, cinc 15, rmno 19, flags 0x20
lb 0, hb 8191, myb 8141, drmb 8141, apifrz 1
GCS SHADOW 0xb19a8370,4 resp[0xb28963a0,0x1fe6a.5] pkey 64046.0
grant 1 cvt 0 mdrole 0x1 st 0x100 lst 0x40 GRANTQ rl LOCAL
master 2 owner 1 sid 0 remote[0x92f96c18,3] hist 0x10c1430c0218619
history 0x19.0xc.0x6.0x1.0xc.0x6.0x5.0x6.0x1.0x0.
cflag 0x0 sender 0 flags 0x0 replay# 0 abast (nil).x0.1 dbmap (nil)
disk: 0x0000.00000000 write request: 0x0000.00000000
pi scn: 0x0000.00000000 sq[0xb28963d0,0xb28963d0]
msgseq 0x1 updseq 0x0 reqids[3,0,0] infop (nil) lockseq x13c5
GCS SHADOW END
GCS RESOURCE END
2013-11-15 04:08:35.204351 : 0 write requests issued in 72 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.204493 : 0 write requests issued in 99 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.204648 : 0 write requests issued in 54 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.204790 : 0 write requests issued in 35 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.204948 : 0 write requests issued in 18 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.205048 : 0 write requests issued in 0 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.205327 : 0 write requests issued in 0 GCS resources
0 PIs marked suspect, 0 flush PI msgs
2013-11-15 04:08:35.205590 : 0 write requests issued in 0 GCS resources
0 PIs marked suspect, 0 flush PI msgs* kjbrrcfwst: resp x0xb28963a0, id1 x1fe6a, drm
2013-11-15 04:08:35.205799 : 0 write requests issued in 1 GCS resources
0 PIs marked suspect, 0 flush PI msgs
DRM(20) win(1) lms 0 finished fixing gcs write protocol
2013-11-15 04:08:35.207051 : kjbldrmnextpkey: AFFINITY pkey 64046.0
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0
benefit 0, total 0, remote 0, cr benefit 0, cr total 0, cr remote 0
kjblpkeydrmqscchk: Begin for pkey 64046/0 bkt[8192->16383] read-mostly 0
kjblpkeydrmqscchk: End for pkey 64046.0
2013-11-15 04:08:35.207595 : DRM(20) quiesced basts [8192-16383]
2013-11-15 04:08:35.209146 :
* lms acks DRMFRZ (16383)
* lms 0 finished parallel drm freeze in DRM(20) window 2, pcount 47
DRM(20) win(2) lms 0 finished drm freeze
2013-11-15 04:08:35.211327 :
* kjbrrcres: In this window: 256 GCS resources, 0 remastered* In all windows: 534 GCS resources, 0 remastered
2013-11-15 04:08:35.214797 : kjbldrmnextpkey: AFFINITY pkey 64046.0
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0
benefit 0, total 0, remote 0, cr benefit 0, cr total 0, cr remote 0
kjbldrmrpst: no more locks for pkey 64046.0, #lk 0, #rm 0, #replay 0, #dup 0 objscan 4
DRM(20) Completed replay (highb 16383)
DRM(20) win(2) lms 0 finished replaying gcs resources
kjbmprlst: DRMFRZ replay msg from 1 (clockp 0x92f96d28, 3)
0x1fe6f.5, 64046.0, x0, lockseq 0x13ca, reqid 0x3
state 0x100, 1 -> 0, role 0x0, wrt 0x0.0
GCS RESOURCE 0xb2896520 hashq [0xbb4edd38,0xbb4edd38] name[0x1fe6f.5] pkey 64046.0
grant 0xb19a3750 cvt (nil) send (nil)@0,0 write (nil),0@65536
flag 0x0 mdrole 0x1 mode 1 scan 0.0 role LOCAL
disk: 0x0000.00000000 write: 0x0000.00000000 cnt 0x0 hist 0x0
xid 0x0000.000.00000000 sid 0 pkwait 0s rmacks 0
refpcnt 0 weak: 0x0000.00000000
pkey 64046.0 undo 0 stat 5 masters[1, 1->2] reminc 13 RM# 18
flg x7 type x0 afftime x8b0628ee, acquire time 0
nreplays by lms 0 = 0SQL> alter system set "_serial_direct_read"=never;System altered.SQL> select count(*) from large_drms;COUNT(*)
----------
999999SQL> select blocks from dba_tables where table_name='LARGE_DRMS';BLOCKS
----------
13233SQL> select object_id,data_object_id from dba_objects where object_name='LARGE_DRMS';OBJECT_ID DATA_OBJECT_ID
---------- --------------
64474 64474With OBJ_IDS As
(Select DATA_Object_Id OBJECT_ID From Dba_Objects
Where Object_Name = 'LARGE_DRMS'), --Customize
Addr As (Select /*+ materialize */
Le_Addr, class, state From X$Bh, OBJ_IDS
Where Object_Id = Obj),
--NOW GET THE RESOURCE NAME IN HEX
Hexnames As (Select
Rtrim(B.Kjblname, ' '||chr(0)) Hexname
From X$Le A, X$Kjbl B, Addr
Where A.Le_Kjbl=B.Kjbllockp
and class = 1 and state <> 3
And A.Le_Addr = Addr.Le_Addr)
-- NOW FIND THE NODE MASTERS
Select A.Master_Node Mast, Count(*)
From Gv$Dlm_Ress A, Hexnames H
Where
Rtrim(A.Resource_Name, ' '||chr(0)) = H.Hexname
Group by A.Master_Node;MAST COUNT(*)
---------- ----------
1 6605
0 6473oradebug setmypid
oradebug lkdebug -m pkey 64474;MAST COUNT(*)
---------- ----------
1 13078

DRM一张103MB大小的表可以通过AWR了解因为DRM操作而消耗的带宽等资源:             其中来源于RAC AWR的AWRGRPT报告的ininterconnect_device_statistics显示了正确的DRM网络流量, 而普通AWRRPT中的Interconnect Device Statistics似乎并不能正式反映网络流量。

本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278183

近距离接触RAC DRM相关推荐

  1. 工业组态领头羊--组态王开始涉足.net程序开发(与林伟先生一次近距离接触)...

    最近为了推广我们的嵌入式设备,决定和组态王进行深层次的合作,昨天林伟先生一行人来到我们公司进行相关合作商谈,我有幸参与其中与林伟先生有了近距离接触的机会. 在我们总经理介绍我的时候,林总说好像见过我, ...

  2. Spring MVC各组件近距离接触--下下--05

    Spring MVC各组件近距离接触--下下--05 各司其职的View View实现原理回顾 可用的View实现类 AbstractUrlBasedView 1.使用JSP技术的view实现 2.使 ...

  3. oracle中的drm是什么文件,oracle RAC DRM基本概念

    oracle RAC DRM基本概念 在oracle RAC中,每个实例均存在一个数据缓存池,每个block的改变都将实例间进行资源协调以获取最大化性能,从而保证数据的完整性. 在RAC集群中,每个被 ...

  4. 漂洋过海,与Splunk第一次近距离接触!

    第一次听说Splunk,源于几年前的一次采访,被采访的创业公司对标的就是Splunk,并要做中国的Splunk.如今,几年过去了,国内外对标Splunk的企业越来越多. 这让我不得不去关注Splunk ...

  5. [转]为什么你需要近距离接触Rust 1.0

    为什么你需要近距离接触Rust 1.0 经过几年的迭代改进,Rust编程语言日前发布1.0版本.作为一种现代系统语言,Rust从大量语言(如C/C++)中取其精髓,去其糟粕,同时具备底层控制.高性能和 ...

  6. 首次开放测试TCL QUHD让外界近距离接触量子点技术

    随着电视行业的迅猛发展,近年来,黑科技层出不穷,比如在显示技术方面,随着TCL QUHD量子点电视的推出,业界认为,未来量子点技术有望彻底革新电视产品,不过,由于消费者对这类技术缺乏足够的了解,所以厂 ...

  7. 报名 | 想在硅谷近距离接触蚂蚁金服的CTO和一众技术高管?这个机会一定不能错过!...

    ​想了解蚂蚁金服?想和蚂蚁金服成为合作伙伴?想在蚂蚁金服找到工作?来这场大会就对了! 去年,包含支付宝业务的蚂蚁金服完成了 45 亿美元融资,创造了当时全球互联网行业单笔私募融资的记录,也成为了全球估 ...

  8. 【多图】近距离接触甲骨文总裁马克赫德,Oracle在上海香格里拉酒店数据中心优化专题研讨会...

    今天有闲去了甲骨文在上海陆家嘴香格里拉酒店举办的<优化数据中心>研讨会, 近距离一睹了Oracle总裁马克赫德(Mark Hurd)的风采, 总体来说台上的赫德还是比较洒脱和萌的:)   ...

  9. 这可能是你与 AI 大神们近距离接触的唯一机会……

    明人不说暗话: 作为粤海街头放飞梦想的有志青年,他们可能是国内最大胆的「狗仔队」. 从2016年成立至今,他们报道过: 国内外数十场 AI 学术会议动态,写下老中青研究者们在会场前线的精神风采 AI ...

最新文章

  1. 远程注入dll中注册热键
  2. python时间重叠_最常见的重叠范围-Python3.x
  3. 光流法测试代码_高效的企业测试-工作流和代码质量(4/6)
  4. 扩展、统计线性化和无迹RTS平滑器
  5. java 指令接口架构,JavaSE 基础大纲
  6. 织梦标签把","逗号改成空格技巧
  7. 一文读懂-Impala
  8. [Android] Android开机启动Activity或者Service方法
  9. 老毛桃u盘装系统linux,老毛桃如何安装iso系统_老毛桃u盘启动安装iso系统教程
  10. No Matter What
  11. 京东平台的产品标题的优化有什么技巧?
  12. 机器学习实操的7个步骤
  13. 让字体变的更清晰CSS 中 -webkit-font-smoothing
  14. 计算机硬件设备安装过程,计算机硬件设备的安装
  15. 第六章 PL/SQL与Oracle间交互
  16. STM32F1开发指南笔记38----游戏手柄实验
  17. Linux 环境进程间通信(三):消息队列
  18. 工地人员设备定位管理系统
  19. 安卓9.0系统设备最完美激活Xposed框架的步骤
  20. 工信部公布汽车油耗数

热门文章

  1. 「NLP-语义匹配」详解深度语义匹配模型DSSM
  2. 公元2019年,你对AI的信任有几分?
  3. NRFI:网络结点不会指数增加的「神经随机深林模拟」
  4. 迁移学习:如何为您的机器学习问题选择正确的预训练模型
  5. 想成为优秀的管理者,不能不知道的决策方法
  6. 【Science】CMU机器学习系主任:八个关键标准判别深度学习任务成功与否
  7. python内置函数:iter、enumerate和next
  8. 一文拆解中国火星车着陆全过程
  9. 任正非最新讲话:华为专家队伍怎么建?
  10. 1.5亿重奖50位青年科学家!第二届“科学探索奖”揭晓