Author: mac
-
Oracle Internal Event:10201 consistent read undo application诊断事件
之前我介绍了<Oracle Internal Event:10200 Consistent Read诊断事件>一致性逻辑读诊断事件的用法和trace含义,10201 “consistent read undo application”是另一个十分有用的内部诊断事件,该事件可以用于诊断一致性读取时的UNDO应用情况。 10201 event可以用于探测为了创建CR(consistent read) block块以满足要求的SCN需要应用多少undo,该10201 event还可以配和10200 event使用。利用该10201 event,我们可以验证一些内部问题,例如何时会发生块上的cleanup。 注意启用10201 event可能导致在短期内产生大量的trace文件,所以不要随意在生产系统中使用。 10201 Internal Event主要会被ktrgcm( CR-rollback (ktrgcm() ) 、 ktrrbkblk 、 ktrcrf 这三个Oracle内核函数触发,这三个Internal Function的主要作用: ktrgcm – common CR read code CR Requestor-Side Algorithm The following statistics are incremented by ktrgcm: “cleanouts and rollbacks – consistent read” is incremented if…
-
何时会发生db file sequential read等待事件?
很多网友对系统内频繁发生的db file sequential read等待事件存有疑问,那么到底在那些场景中会触发该单块读等待事件呢? 在我之前写的一篇博文<SQL调优:Clustering Factor影响数据删除速度一例>中总结了db file sequential read等待事件可能发生的场景,在这里再share以下: ”db file sequential read”单块读等待是一种最为常见的物理IO等待事件,这里的sequential指的是将数据块读入到相连的内存空间中(contiguous memory space),而不是指所读取的数据块是连续的。该wait event可能在以下情景中发生: 最为常见的是执行计划中包含了INDEX FULL SCAN/UNIQUE SCAN,此时出现”db file sequential read”等待是预料之中的,一般不需要我们去特别关注 当执行计划包含了INDEX RANGE SCAN-(“TABLE ACCESS BY INDEX ROWID”/”DELETE”/”UPDATE”), 服务进程将按照”访问索引->找到rowid->访问rowid指定的表数据块并执行必要的操作”顺序访问index和table,每次物理 读取都会进入”db file sequential read”等待,且每次读取的都是一个数据块;这种情况下clustering_factor将发挥其作用,需要我们特别去关注,本例中提及的解决方法对 这种情景也有效 Extent boundary,假设一个Extent区间中有33个数据块,而一次”db file scattered read”多块读所读取的块数为8,那么在读取这个区间时经过4次多块读取后,还剩下一个数据块,但是请记住多块读scattered read是不能跨越一个区间的(span an extent),此时就会单块读取并出现”db file sequential read”。这是一种正常现象,一般不需要额外关注 假设某个区间内有8个数据块,它们可以是块a,b,c,d,e,f,g,h,恰好当前系统中除了d块外的其他数据块都已经被缓存在buffer cache中了,而这时候恰好要访问这个区间中的数据,那么此时就会单块读取d这个数据块,并出现”db file sequential read”等待。注意这种情况不仅于表,也可能发生在索引上。这是一种正常现象,一般不需要额外关注 chained/migrated rows即链式或迁移行,这里我们不介绍链式行的形成原因,chained/migrated rows会造成服务进程在fetch一行记录时需要额外地单块读取,从而出现”db…
-
Oracle 11g Database SQL语言基础 by Kevinlin
同事 Kevinlin 写的一个<Oracle 11g Database SQL语言基础> ,内容非常丰富, 详细介绍了11g SQL的一些新特性和基础概念, 原本是给客户做培训用的 , 这里分享一下, 感谢Kevinlin在Oracle领域为我们做出的贡献! 简单介绍下 Kevinlin: 资深DBA ,高级Oracle技术支持,拥有超过10年的Oracle 管理使用经验, 擅长 故障诊断和性能调优。 下载地址:https://www.askmac.cn/wp-content/uploads/2011/11/Oracle11g-Database-SQL语言基础.ppt [gview file=”https://www.askmac.cn/wp-content/uploads/2011/11/Oracle11g-Database-SQL语言基础.ppt”]
-
留言板历史
原留言板是为了记录网友的一些问题以及我的分析,现在有更方便的t.askmac.cn可以使用了,所以旧的留言板功能将被取消,本贴保留了留言板的历史记录。 (41) lx Sat, 15 October 2011 11:39:11 +0800 兄弟,你link的那些国外oracle圈的网站 怎么都没了? (40) 重庆-漂流 Tue, 11 October 2011 09:56:10 +0800 数据库报这类错误,请帮看下怎么解决 Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0xFFFFFFFF] [PC:0x7FFF65D0, {empty}] Errors in file d:appadministratordiagrdbmsorclorcltraceorcl_ora_2368.trc (incident=143793): ORA-07445: 出现异常错误: 核心转储 [PC:0x7FFF65D0] [ACCESS_VIOLATION] [ADDR:0xFFFFFFFF] [PC:0x7FFF65D0] [UNABLE_TO_READ] [] ORA-12080: IOQ 批处理缺失缓冲区高速缓存 Trace file d:appadministratordiagrdbmsorclorcltraceorcl_ora_2368.trc Oracle Database 11g Enterprise Edition Release…
-
ALTER EXTSEQNO must be performed on each corresponding downstream reader
2009-10-26 23:28:19 WARNING OGG-01519 Waiting at EOF on input trail file ./dirdat/bm000002, which is not marked as complete; but succeeding trail file ./dirdat/bm000003 exists. If ALTER ETROLLOVER has been performed on source extract, ALTER EXTSEQNO must be performed on each corresponding downstream reader. 2009-10-26 23:30:20 INFO OGG-01021 Command received from GGSCI: STATS. 2009-10-26 23:32:25 INFO…
-
Oracle Internal Research深入研究Oracle内部原理
以下是我个人原创或总结的一些深入研究Oracle Internal内部原理的文章post列表: Oracle Internal Event:10200 Consistent Read诊断事件 了解Oracle RAC Brain Split Resolution 了解Oracle内核代码层的作用 了解你所不知道的SMON功能(九):维护MON_MODS$字典基表 了解你所不知道的SMON功能(八):Transaction Recover 了解你所不知道的SMON功能(七):清理IND$字典基表 了解你所不知道的SMON功能(六):Instance Recovery 了解你所不知道的SMON功能(五):Recover Dead transaction 了解你所不知道的SMON功能(四):维护col_usage$字典基表 了解你所不知道的SMON功能(三):清理obj$基表 了解你所不知道的SMON功能(二):合并空闲区间 了解你所不知道的SMON功能(一):清理临时段 Know more about commit Find INTCOL#=1001 in col_usage$? Buffer Lock Mode and Compatibilities 关于V$OPEN_CURSOR Advanced Diagnostic using oradebug dumpvar 还原真实的cache recovery Oracle内部视图:x$targetrba Oracle内部视图:x$ktfbfe Oracle内部视图:x$ktfbue Only ARCH Bgprocess may create…
-
Oracle发布公共云Public Cloud
Oracle甲骨文公司在OOW大会上宣布了其将提供一种新的付费的公共云(Public Cloud)融合应用平台,从最近建立的子域名cloud.oracle.com的上的信息来看,这些Platform-as-a-Service(Paas)服务包括:Fusion CRM、Java、Fusion HCM、Database(Oracle Database!!)和Social Network.
-
Enterprise Manager Cloud Control 12.1.0.1 (12c)安装指南
This document describes in detail the Steps for Installing Enterprise Manager Cloud Control in graphical mode. You can also refer to Enterprise Manager 12c Basic Installation Guide on OTN from the following link: Oracle Enterprise Manager Cloud Control Basic Installation Guide 12c Release 1 (12.1.0.1) For installing Enterprise Manager 12c Agents, refer to Document 1360183.1 This…
-
OGG常见初始化方案
数据初始化 RMAN初始化方案 本方案在初始化过程中,不需要源数据库停机。 步骤如下: 生产端=============================================== 1) 源端和目标端安装OGG软件,并启动manager 2) 源端配置OGG的Extract及DataPump 3) 源端启动Extract进程,并且人工记录抽取进程启动的时间点,例如:“2011-05-03 11:20:55” ,将此时间点作为在下一步中查找长事务的一个判断条件;可以在数据库中查询该时间点:”select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual” 4) 长事务处理:在V$TRANSACTION中查找当前正在运行的事务(RAC环境下,查看gv$transaction),并找出相应的长事务。在执行rman备份之前,确保这些长事务已经完成,或者被kill掉(需要得到dba或者相关管理人员的确认)。 Select start_time from gv$transaction where to_date(start_time, ‘yyyy-mm-dd hh24:mi:ss’)<to_date(‘2011-05-03 11:20:55’, ‘yyyy-mm-dd hh24:mi:ss’); 注:通过上面的SQL语句查找到比第3歩中记录下的时间点早的事务,需要等到该事务结束,然后执行rman的备份; 5) 使用oracle用户登录,执行rman备份 –备份数据库: $rman target / run { allocate channel ch00 type disk maxpiecesize 20g; allocate channel ch01 type disk maxpiecesize 20g;…
-
Oracle Internal Event:10200 Consistent Read诊断事件
10200(consistent read buffer status)内部诊断事件可以用于探测一致性读CR(consistent read)块的访问情况,虽然cr读的统计信息可以从v$sysstat或AWR/statspack中获取,但是10200 event还是我们研究Consistent Read一致性读的有力工具。该事件可以通过在会话session级别设置ALTER SESSION SET EVENTS 或 DBMS_SYSTEM.SET_EV. Set 来开启,一般调用级别为Level 10。 该事件返回的trace跟踪文件,记录了为了实现一致性读的目的,哪些数据块以及这些块的各历史版本在执行过程中被创建(CR block creation)并检验(CR block inspection),以找出Best CR block满足Consistent一致性。 注意10200 Internal Event主要是被ktrgtc和ktrget(call ktrget to get one block ->calling KTR layer to apply RBS to have consistent read Block;)这2个Oracle内核功能函数触发,这2个内部函数Internal Function的主要作用: ktrget: Initializes a buffer cache CR scan request Calls kcbgtcr for the best…