深入解析Oracle中的DRM原理及案例分享


深入解析DRM原理及案例分享 Deep In Oracle DRM and Case Study About Me  李真旭  More than 6 years with Oracle  Oracle Senior Consultant  Email:oracledba@live.cn  Blog: http://www.killdb.com  目前就职于云和恩墨 深入解析DRM原理及案例分享 • Oracle DRM的历史 • Oracle DRM在12c中的变化 • Oracle DRM的演变历程 • Oracle DRM的好处不弊端 • DRM 相关案例分享 • DRM 的未来如何? Oracle DRM的历史 • 1.1 DRM特性在9i出现雏形(file affinity) • 1.2 Oracle DRM在10gR2中的改变 • 1.3 Oracle 11g DRM的细化不增强 What is Oracle DRM ? Dynamic Resource Management/ Dynamic Remaster What is Affinity ? Oracle DRM的历史 Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production SQL> show parameter lm_ NAME TYPE VALUE ------------------------------------------- ------- _lm_dynamic_lms boolean FALSE _lm_dynamic_load boolean TRUE _lm_dynamic_remastering boolean FALSE _lm_file_affinity string • 1.1 DRM特性在9i出现雏形(file affinity) 我们可以看到DRM相关参数其实已经出现在9i 版本中默认并没有启用该 特性。在Oracle 10gR1版本中,仍然是file affinity,所以在10gR1版 本中也有很大局限性。 Oracle DRM的历史 File affinity Object affinity Undo affinity • 1.2 Oracle DRM在10gR2中的改变 实际上object affinity可以理解为file affinity 的进化,undo affinity 可以 理解为属于object Affinity的一种。 ——将原始的file affinity进化为object affinity Resource affinity Oracle DRM的历史 read mostly locking 读多写少 reader bypass 读少写多 • 1.3 Oracle DRM在11g的细化不增强 Oracle DRM的历史 11.2.0.2引入: _lm_drm_hiload_percentage _lm_drm_lowload_percentage 11.2.0.3引入: Parallel DRM Freeze DRM Batch request(10s 1次) DRM interval 触发间隔控制 Read Mostly数据固化(之前版本实例重启之后会失效) • 1.4 Oracle DRM在11g的细化不增强 Oracle DRM的历史 在11gR2版本中,Oracle会根据系统的load大小进行判断,决定是否 暂时禁用DRM,主要是根据上面2个参数。实际上oracle从10g就开始 记录系统load情况了(每5s 更新一次,由参数_lm_lhupd_interval 控制) *** 2013-11-07 05:40:21.265 * lms 0 finished parallel drm freeze in DRM(4) window 1, pcount 39 DRM(4) win(1) lms 0 finished drm freeze DRM(4) win(1) lms 0 finished replaying gcs resources DRM(4) win(1) lms 0 finished fixing gcs write protocol 对于read mostly 的数据,oracle在重启之后会失效,从11.2.0.3版本 开始,默认支持对read mostly的数据进行固化(通过 _gc_persistent_read_mostly来实现)。 • 1.4 Oracle DRM在11g的细化不增强 11203 • 2.1 DRM 相关latch 优化 • 2.2 Read Mostly 特性加强,可以指定实例 • 2.3 LMON等trace中针对DRM的信息格式变化 Oracle DRM在12c中的变化 引入了affinity 相关latch,使得DRM的触发机制更为完善。 affinity stats objects freelist affinity stats hash tables freelist gcs affinity object freelist latch Object的affinity stats数据是由lck0进程来进行维持。 Oracle DRM在12c中的变化 • 2.1 DRM 相关latch 优化 Oracle DRM在12c中的变化 • 2.2 Read Mostly 特性加强,可指定实例 对于特定的系统,可以对read mostly特征进行固化,即指定到某个实例。 _read_mostly_instance _read_mostly_instance_qa_control 必须同时设置2个参数,否则实例将无法启劢。例如: Errors in file /u01/app/oracle/diag/rdbms/killdb/killdb1/trace/killdb1_lmon_27484. trc: ORA-00600: internal error code, arguments: [kjfcrfg:!retry_qry], [0], [], [], [], [], [], [], [], [], [], Oracle DRM在12c中的变化 • 2.3 LMON等 trace中针对DRM的信息格式变化 Begin DRM(1) (swin 1) UNDO pdb 1 tsn 2 object id 4294967295, size 0, objscan 1.1, create affinity to instance 1 Total pkey count in this drm 1, cumulative object size 0, cache size 8406 * drm quiesce 2013-10-17 02:07:25.741874 : DRM(1) resources quiesced [0-4095], rescount 211 2013-10-17 02:07:25.741926 : DRM(1) local converts quiesced [0-4095], lockcount 0, * drm sync 1 * drm freeze * drm cleanup * txenq drm rmt cleanup * txenq drm res cleanup * txenq drm timerq * txenq drm setmaster * drm sync 2 * drm replay * txenq drm replay * drm sync 3 * drm fix writes * txenq drm oack * drm sync 4 * drm end Oracle DRM的演变历程 Oracle DRM的好处不弊端 丌再需要 Reconfig,即能完成Resouce 的Remaster操作. 该特性的设计初衷是为了降低跨节点频繁访问需求,通过更改所访问资源的 master node。 实际上我认为该特性设计的出发点是好的,是为了特定应用而设计的,特别 是在11g引入了read mostly等特殊之后,DRM功能进一步得到完善。 Gc cr grant 2-way Gc cr block 3-way Gc cr block 2-way • 4.1 DRM的好处? 我想或许有人说DRM是百害而无益,但我并不这样认为! DRM freeze会导致资源短暂的丌可用 DRM freeze可能导致系统hang住 Read mostly/reader bypass 等特性带来各种bug,可以说DRM就是 oracle的一个鸡肋。 • 4.2 DRM的弊端 Oracle DRM的好处不弊端 某客户的核心系统,3节点RAC,丌定期出现数据库 hang死的情况,每 次出现该问题,只能重启操作系统来解决;且问题持续了1年左右,给 客户造成了非常丌好的影响,同时影响巨大。 故障现象: 1) 丌定期 hang 2) 丌定时,即丌一定是业务高峰期 3) 数据库hang死,只能通过重启主机来解决 ——DRM导致RAC数据库hang死 DRM 相关案例分享 Thu Dec 1 09:17:08 2011 IPC Send timeout detected.Sender: ospid 295040 Receiver: inst 1 binc -924971094 ospid 492490 ...... Thu Dec 1 09:20:35 2011 PMON failed to delete process, see PMON trace file ...... Thu Dec 1 09:32:13 2011 Errors in file /oracle/app/oracle/admin/xxx/bdump/xxx2_pz97_516690.trc: ORA-07445: exception encountered: core dump [] [] [] [] [] [] ....... Thu Dec 1 10:31:28 2011 Reconfiguration started (old inc 6, new inc 8) List of nodes: 1 2 DRM 相关案例分享 492490 为 Lmd进程 ----- lmd0_492490.trc *** 2011-12-01 09:11:32.520 SKGXPDOCON:connection refused: out of memory SSKGXPID 0xffffb650 network 0 Internet address 10.10.10.11 UDP port number 47147 SKGXPDOCON:connection refused: out of memory SSKGXPID 0xffffb650 network 0 Internet address 10.10.10.12 UDP port number 59489 SKGXPDOCON:connection refused: out of memory SSKGXPID 0xffffb650 network 0 Internet address 10.10.10.11 UDP port number 47143 DRM 相关案例分享 udp_recvspace = 5242880 udp_sendspace = 524288 (db_block_size * db_file_multiblock_read_count +4kb) DRM 相关案例分享 Add, just view the system and found that three nodes are not synchronized time, a difference of about 5 seconds. I try and communicate with customers, but customers want to find the root cause. Hope to have a result, if not, then we can try to advise customer to upgrade the database to 10.2.0.4.0,Because the clusterware version is 10.2.0.4.0。 DRM 相关案例分享 ——SR(Oracle Service Request) *** 2011-12-01 09:16:16.340 * kjdrchkdrm: found an RM request in the request queue Drop pkey 780071 * kjdrchkdrm: found an RM request in the request queue Drop pkey 780072 * kjdrchkdrm: found an RM request in the request queue Drop pkey 780073 …… DRM 相关案例分享 —Lmd Trace —Backgroup Event DRM 相关案例分享 10gR2以及以下版本 _gc_affinity_time=0 _gc_undo_affinity=FALSE 或 _gc_affinity_limit=1000000 _gc_affinity_minimum=1000000 11gR1以及以上版本 _gc_policy_time=0 或 alter system set "_gc_read_mostly_locking"=false scope=spfile; alter system set "_gc_bypass_readers"=false scope=spfile; DRM 相关案例分享 ——How to disable DRM? 存在即合理,逐渐完善,接近完美! DRM 的未来如何? Thanks
还剩25页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf