Know more about RBA redo block address

A “Redo Block Address” (RBA) describes a physical location within a redo log file. An RBA consists of the following:

Log sequence number Block number within log file Byte offset within block

The structure of the redo block address is given below : 1 – The number of the redo log. [4 bytes]

2 – . . . → Read More: Know more about RBA redo block address

ORA-00600[kjpsod1]&ORA-44203错误一例

一套HPUX-Itanium平台上版本为10.2.0.2 的系统出现ORA-00600: internal error code, arguments: [kjpsod1], [], [], [], [], [], [], [],并伴随有”ORA-44203: timeout waiting for lock on cursor”.错误,详细的日志如下:

 

Database get error Errors in file /s01/admin/udump/prod_ora_14084.trc: ORA-00600: internal error code, arguments: [kjpsod1], [], [], [], [], [], [], [] ORA-44203: timeout waiting for lock on cursor ORA-44203: timeout waiting for lock on cursor . . . → Read More: ORA-00600[kjpsod1]&ORA-44203错误一例

了解你所不知道的SMON功能(十):维护SMON_SCN_TIME字典基表

smon_scn_time

SMON后台进程的作用还包括维护SMON_SCN_TIME基表。

SMON_SCN_TIME基表用于记录过去时间段中SCN(system change number)与具体的时间戳(timestamp)之间的映射关系,因为是采样记录这种映射关系,所以SMON_SCN_TIME可以较为较为粗糙地(不精确地)定位某个SCN的时间信息。实际的SMON_SCN_TIME是一张cluster table簇表。

 

 

 

SMON_SCN_TIME时间映射表最大的用途是为闪回类型的查询(flashback type queries)提供一种将时间映射为SCN的途径(The SMON time mapping is mainly for flashback type queries to map a time to an SCN)。

 

Metalink文档<Error ORA-01466 while executing a flashback query. [ID 281510.1]>介绍了SMON更新SMON_SCN_TIME的规律:

在版本10g中SMON_SCN_TIME每6秒钟被更新一次(In Oracle Database 10g, smon_scn_time is updated every 6 seconds hence that is the minimum time that . . . → Read More: 了解你所不知道的SMON功能(十):维护SMON_SCN_TIME字典基表

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 . . . → Read More: Oracle Internal Event:10201 consistent read undo application诊断事件

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 . . . → Read More: Oracle Internal Research深入研究Oracle内部原理

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 . . . → Read More: Oracle Internal Event:10200 Consistent Read诊断事件

了解Oracle RAC Brain Split Resolution

了解Oracle rac brain split resolution View more documents from Maclean Liu

了解Oracle内核代码层的作用

Oracle RDBMS Kernel 的代码分成多层次,如<Oracle8i Internal Services>一书所介绍的:

其中部分代码层的作用:

The cache layer (KC)

The cache layer manages the database buffer cache. It uses operating system dependent facilities for data file I/O, provides concurrency control facilities for local access to the cache buffers, and provides parallel cache management (PCM) instance locking facilities for Oracle parallel . . . → Read More: 了解Oracle内核代码层的作用