Oracle RBA(Redo Byte Address) 说明

2024-04-04 02:38
文章标签 oracle 说明 address byte redo rba

本文主要是介绍Oracle RBA(Redo Byte Address) 说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

一. RBA 说明

之前整理了一个rdba和dba 的说明文档,参考:

       Oracle rdba和 dba 说明

       http://blog.csdn.net/tianlesoftware/article/details/6529346

 

       在MOS的文档:Question About RBA (Redo Block Address) [ID 759966.1] 有对RBA的说明。

 

       A"Redo Block Address" (RBA) describes a physical location within aredo log file.

 

RBA 由以下三部分组成:

       (1)the log file sequence number (4 bytes)

       (2)the log file block number (4 bytes)

       (3)the byte offset into the block at which the redo record starts (2bytes)

 

如:RBA[0x19.2.10] 代表 Log squence25, Block number 2 with byte offset 16.

注意这里的格式:都是16进行。

 

Redo 与checkpoint 关系很大,当设置log_checkpoints_to_alert 参数为true后,checkpoint 发生时会写入alert log里。

 

如:

SYS@dave2(db2)>alter system set log_checkpoints_to_alert=true scope=both;

System altered.

SYS@dave2(db2)> alter system switchlogfile;

System altered.

 

log里的信息如下:

Thu Aug 18 18:46:18 2011

ALTER SYSTEM SETlog_checkpoints_to_alert=TRUE SCOPE=BOTH;

Thu Aug 18 18:48:07 2011

Beginning log switch checkpoint up to RBA[0xa.2.10], SCN: 2148380730

Thread 1 advanced to log sequence 10

 Current log# 3 seq# 10 mem# 0: /u01/app/oracle/oradata/dave2/redo03.log

Thu Aug 18 18:52:54 2011

Completed checkpoint up to RBA [0xa.2.10],SCN: 2148380730

Thu Aug 18 19:08:59 2011

Incremental checkpoint up to RBA[0xa.736.0], current log tail at RBA [0xa.80a.0]

Thu Aug 18 19:39:01 2011

Incremental checkpoint up to RBA[0xa.c96.0], current log tail at RBA [0xa.d7c.0]

....

Fri Aug 19 07:10:00 2011

Incremental checkpoint up to RBA[0xa.1688a.0], current log tail at RBA [0xb.8328.0]

Fri Aug 19 07:11:04 2011

Completed checkpoint up to RBA [0xb.2.10],SCN: 2148412930

Fri Aug 19 07:40:02 2011

Incremental checkpoint up to RBA[0xb.896c.0], current log tail at RBA [0xb.89c1.0]

  

 

       根据我们前面的说明,RBA 由三部分组成,第一部分是sequence number,即序列号。

 

在我们贴出来的log里有2个日志序列:RBA [0xa.1688a.0] 和 RBA [0xb.896c.0]。

SYS@dave2(db2)> select to_number('a','xx')from dual;

 

TO_NUMBER('A','XX')

-------------------

                 10

 

SYS@dave2(db2)> selectto_number('b','xxx') from dual;

 

TO_NUMBER('B','XXX')

--------------------

                  11

 

a 对应的是日志序列10,b 对应的是日志序列11.

 

SYS@dave2(db2)> select sequence# fromv$archived_log;

 

 SEQUENCE#

----------

        1

        2

        3

        4

        5

        6

        7

        8

        9

       10

 

SYS@dave2(db2)> select sequence#,group#,status from v$log;

 

 SEQUENCE#    GROUP# STATUS

---------- ---------- ----------------

       11          1 CURRENT

        9          2 INACTIVE

       10          3 INACTIVE

 

根据这个查询结果判断10是已经归档的,11是正在使用的current redo log file。

 

第二部分就是我们对应的block:

SYS@dave2(db2)> selectto_number('1688a','xxxxxxxxx') from dual;

 

TO_NUMBER('1688A','XXXXXXXXX')

------------------------------

                         92298

 

在之前的blog:

       Oracle Dump Redo Log File 说明

       http://blog.csdn.net/tianlesoftware/article/details/6670962

 

里提到,可以根据RBA 来dump redo block:

 

格式如下:

ALTER SYSTEM DUMP LOGFILE 'filename' RBAMIN seqno .blockno RBA MAX seqno . blockno;

 

 示例:

SYS@anqing1(rac1)> alter system dumplogfile'+data/anqing/onlinelog/redo02.log'  rbamin 121 10458  rba max125 10472;

System altered.

 

这里的参数:seqno .blockno; 就是我们RBA中的前2部分。

 

二. RBA 使用

       RBAs are not necessarily unique within their thread, because the log file sequencenumber may be reset to 1 in all threads if a database is opened with theRESETLOGS option.

 

RBAs are used in the following important ways.

       With respect to a dirty block in thebuffer cache, the low RBA is theaddress of the redo for the first change that was applied to the block since itwas last clean, and the high RBA is the address of the redo for the most recent change to have been applied to theblock.

      

       Dirty buffers are maintained on the buffer cache checkpoint queues in low RBA order. The checkpoint RBA is the point up to which DBWn has written buffers from thecheckpoint queues if incremental checkpointing is enabled -- otherwise it isthe RBA of last full thread checkpoint.

 

       The checkpoint RBA is copied into the checkpoint progress record of the controlfile by the checkpoint heartbeat once every 3 seconds. In stance recovery, when needed, begins from the checkpoint RBA recorded in thecontrolfile. 

 

       The target RBA is the point up to which DBWnshould seek to advance the checkpoint RBA to satisfy instance recovery objectives.

 

       The on-disk RBA is the point up to which LGWR has flushed the redo thread to the online log files. DBWn may not write ablock for which the high RBA is beyond the on-disk RBA. Otherwise transactionrecovery (rollback) would not be possible, because the redo needed to undo achange is always in the same redo record as the redo for the change itself.

 

       The term sync RBA is sometimes used to referto the point up to which LGWR is required to sync the thread. However, this isnot a full RBA -- only a redo block number is used at this point.

 

在上面提到的几种RBA 值可以通过X$BH,和 X$KCCRT 视图进行查看:

       The low and high RBAs for dirty buffers can be seen in X$BH.(There is also a recovery RBA which is used to record the progress ofpartial block recovery by PMON.)

       The incremental checkpoint RBA, the target RBA and theon-disk RBA can all be seen in X$TARGETRBA. The incremental checkpointRBA and the on-disk RBA can also be seen in X$KCCCP.

       The full thread checkpoint RBA can be seen in X$KCCRT.

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

QQ:492913789

Email:ahdba@qq.com

Blog:  http://www.cndba.cn/dave

Weibo:   http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群: 83829929(满) DBA5群: 142216823(满) 

DBA6 群:158654907(满)  聊天 群:40132017(满)   聊天2群:69087192(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

这篇关于Oracle RBA(Redo Byte Address) 说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874608

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当

oracle分页和mysql分页

mysql 分页 --查前5 数据select * from table_name limit 0,5 select * from table_name limit 5 --limit关键字的用法:LIMIT [offset,] rows--offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。   oracle 分页 --查前1-9

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

列举你能想到的UNIX信号,并说明信号用途

信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。 UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。 Unix信号量也可以