zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

《Oracle高性能自动化运维》一一3.2 Redo组成结构

Oracle高性能自动化运维 结构 组成 3.2 一一
2023-09-11 14:19:11 时间

本节书摘来自华章计算机《Oracle高性能自动化运维》一书中的第3章,第3.2节,作者:冷菠 著,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 Redo组成结构

Oracle Redo由两部分组成:
日志头(Redo Header):记录Redo的基本概要信息;
日志记录(Redo Record):记录数据库的详细更改。
3.2.1 Redo Header
Redo Header主要记录了Redo基本概要信息,例如数据库名称、控制文件序列号及日志Thread号等信息,如下所示:
image

3.2.2 Redo Record
日志记录(Redo Record)又被称为日志记录条目,记录了原子级的数据库更改操作。Redo Record由日志记录头(Redo Record Header)、更改矢量(Change Vector)两部分组成。

Redo Record Header
Redo Record Header位于每个Redo Record头部,记录了Redo Record信息概要,如下所示:

image

Change Vector
Redo Record包含一到多个更改矢量。一个Change Vector记录了一个数据块的一次更改。Change Vector由更改矢量头(Change Vector Header)、更改矢量主体结构(Change Vector Body)两部分组成。

(1)Change Vector Header
Change Vector Header结构如下:
image

其中:
CLS为Block类型,与x$bh.class保持一致。例如示例中的CLS为1,表示数据块的操作。
OP表示数据库操作码,用于记录数据库的操作类型。OP主要特点:
数据库的任何更改操作(OP)都会被记录在Redo中;
数据库更改操作(OP)包含Layer Code和Sub Code,中间使用“.”分开。例如OP(11.2)表示单行插入操作;
Oracle包含多种类型的更改操作(OP)。
Oracle主要的Layer Code如表3-1所示。
image

Layer Code不同使得Sub Code代表的操作也不一样,我们以常见的索引操作(OP:10)和行操作(OP:11)为例,介绍Sub Code的具体含义。
1)索引操作的Sub Code,如表3-2所示。
image

2)行操作Sub Code,如表3-3所示。
image

通过表3-3可以看到,示例中的OP(11.5)代表行更新操作。
Oracle Change Vector包含了多种类型的OP,记录了数据库的所有(类型)更改。
(2)Change Vector Body
Change Vector Body详细描述了数据库块级的更改信息,如下所示:
image
image

有关Redo结构的详细介绍,请参考7.1.3节。
(3)Change Vector 与 ITL
Change Vector与事务槽(ITL)的关系如下:
当事务开始时,系统在回滚段头的事务表中分配一个ITL事务槽,在Change Vector中以OP(5.2)表明事务开始;
当事务提交后,Change Vector中以OP(5.4)代表事务结束;
事务XID(Transaction ID)用于唯一标识事务;
UBA(Undo Block Address)记录了事务相关的Undo Record的存储位置;
ITL为XID与UBA组合,描述了事务的详细信息,关系如下所示:
ITL=XID+UBA
其中:
XID组成结构:
USN(Undo Segment Number):事务所在的Undo Segment ID;
TX TABLE SLOT(Undo Segment Header Transaction Table Slot):回滚段头事务表中的事务Slot号;
WRAP(Sequence Number):事务序列号。
UBA组成结构:
Undo Block DBA(Data Block Address):事务相关的Undo Block物理地址;
Sequence Number:Undo Block中的序列号;
Record Number:Undo Block中的记录索引号(Rec#)。
可以通过以下Dump示例查证Change Vector中的事务槽(ITL)。
1)Change Vector中的事务:
image

其中:OP(5.2)代表事务开始。
2)Change Vector中的ITL:
image

事务与ITL的详细介绍,请参考4.1.3节。


阿里云推出高性能一体机POLARDB BOX,全面兼容Oracle、mysql 9月26日,2019杭州云栖大会上,阿里云宣布正式推出高性能数据库一体机——POLARDB BOX,用户部署在自有数据中心即可享受云数据库的便捷体验,同时还为Oracle等传统数据库用户提供一键迁移功能,最多节省95%迁移成本,更适合政企、交通、航运、金融等行业。
阿里云推出全面兼容Oracle的高性能一体机POLARDB BOX 9月26日,2019杭州云栖大会上,阿里云宣布正式推出高性能数据库一体机——POLARDB BOX,用户部署在自有数据中心即可享受云数据库的便捷体验,同时还为Oracle等传统数据库用户提供一键迁移功能,最多节省95%迁移成本,更适合政企、交通、航运、金融等行业。
《Oracle高性能自动化运维》一一3.2 Redo组成结构 本节书摘来自华章出版社《Oracle高性能自动化运维》一 书中的第3章,第3. 2节,作者:冷菠 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
《Oracle高性能自动化运维》一一3.5 小结 本节书摘来自华章出版社《Oracle高性能自动化运维》一 书中的第3章,第3. 5节,作者:冷菠 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
《Oracle高性能自动化运维》一一3.4 Redo优化 本节书摘来自华章出版社《Oracle高性能自动化运维》一 书中的第3章,第3.4 节,作者:冷菠 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
《Oracle高性能自动化运维》一一3.3 Redo产生场景 本节书摘来自华章出版社《Oracle高性能自动化运维》一 书中的第3章,第3.3 节,作者:冷菠 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
《Oracle高性能自动化运维》一一3.1 Redo功能用途 本节书摘来自华章出版社《Oracle高性能自动化运维》一 书中的第3章,第3. 1节,作者:冷菠 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看