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

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe