电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Oracle的回滾段存儲內(nèi)容分析

瀏覽:107日期:2023-11-29 14:26:36

事務在執(zhí)行DML操作時,會首先將相關的數(shù)據(jù)塊寫入數(shù)據(jù)緩沖區(qū)中,數(shù)據(jù)緩沖區(qū)中存儲的是DML操作相關的完整數(shù)據(jù)塊,比如我們對表中的某一個記錄執(zhí)行update操作,oracle會將記錄所在的數(shù)據(jù)塊讀入數(shù)據(jù)緩沖區(qū)中。

在執(zhí)行update操作之后,oracle后臺進程會首先將修改前的內(nèi)容(包括數(shù)據(jù)塊中其他記錄內(nèi)容)以及scn,塊信息等寫入回滾段中,但這里寫的時候不僅僅只是簡單的塊復制,而是將原來的數(shù)據(jù)塊順序?qū)懭牖貪L段的數(shù)據(jù)塊。測試表明,在源表數(shù)據(jù)塊占用空間較少的情況下(比如設置pctfree為99),對源表兩個數(shù)據(jù)塊中記錄的修改只占用一個回滾段中的數(shù)據(jù)塊(因為這時回滾段的數(shù)據(jù)塊pctfree值是默認的,相對較小,一個回滾塊可以存儲更多的源數(shù)據(jù)塊)。但如果設置源表占用空間較大,比如設置默認或者設pctfree為1,則對源表的兩個數(shù)據(jù)塊內(nèi)容修改時,會占用回滾段中的兩個數(shù)據(jù)塊。

同時會將修改記錄的前后內(nèi)容都寫入重做日志文件中(這里只寫入修改前后的該記錄的信息,數(shù)據(jù)塊中的其他記錄將不會寫入重做日志)。

一旦用戶對該操作執(zhí)行了commit或rollback操作,回滾段內(nèi)容會理解清空。

現(xiàn)在我們來作個測試驗證上面的說法。

1, 創(chuàng)建一個用戶表Trollsegment,并插入數(shù)據(jù)1000條記錄到表中

droptabletrollsegment;createtabletrollsegment(

FID integer,

Fname varchar2(40),

Fothers varchar2(40)

) tablespaceodsdpctfree98

insertintotrollsegmentselectrownum, rpad('name',20,rownum),rpad('other',20,rownum)fromdba_objectswhererownum<1000

commit

2, 轉(zhuǎn)儲表中FID=10的數(shù)據(jù)塊內(nèi)容

selectdbms_rowid.rowid_block_number(rowid),count(*) fromtrollsegment groupbydbms_rowid.rowid_block_number(rowid)selectdbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_relative_fno(rowid),fid fromtrollsegment wherefid = 10

1 7437 14 10

SQL> alter system dump datafile 14 block 7437;

System altered

*** 2009-02-07 10:28:48.629

Start dump data blocks tsn: 11 file#: 14 minblk 7437 maxblk 7437

buffer tsn: 11 rdba: 0x03801d0d (14/7437)

scn: 0x0001.8569780b seq: 0x01 flg: 0x02 tail: 0x780b0601

frmt: 0x02 chkval: 0x0000 type: 0x06=trans data

Block header dump: 0x03801d0d

Object id on Block? Y

seg/obj: 0x167cc csc: 0x01.856977e6 itc: 2 flg: E typ: 1 - DATA

brn: 0 bdba: 0x3801d09 ver: 0x01

inc: 0 exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x0012.018.0000034d 0x0e000c3e.0054.48 --U- 3 fsc 0x0000.8569780b

0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

data_block_dump,data header at 0x80000001001a3864

===============

tsiz: 0x1f98

hsiz: 0x18

pbl: 0x80000001001a3864

bdba: 0x03801d0d

76543210

flag=--------

ntab=1

nrow=3

frre=-1

fsbo=0x18

fseo=0x1f08

avsp=0x1ef0

tosp=0x1ef0

0xe:pti[0] nrow=3 offs=0

0x12:pri[0] offs=0x1f08

0x14:pri[1] offs=0x1f38

0x16:pri[2] offs=0x1f68

block_row_dump:

tab 0, row 0, @0x1f08

tl: 48 fb: --H-FL-- lb: 0x1 cc: 3

col 0: [ 2] c1 0b

col 1: [20] 6e 61 6d 65 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

col 2: [20] 6f 74 68 65 72 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

tab 0, row 1, @0x1f38

tl: 48 fb: --H-FL-- lb: 0x1 cc: 3

col 0: [ 2] c1 0c

col 1: [20] 6e 61 6d 65 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31

col 2: [20] 6f 74 68 65 72 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31

tab 0, row 2, @0x1f68

3, 對FID=10的記錄做更新,但不提交

updatetrollsegment setfname = replace(fname,'name','eman')wherefid = 10orfid = 20

4, 查看當前事務所占回滾段和起始回滾塊,并導出當前回滾塊的內(nèi)容與轉(zhuǎn)儲出去的表內(nèi)容進行比較。

查看當前活動事務占用的回滾段信息

SELECTs.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk FROMv$session s,v$transaction t WHEREs.saddr=t.ses_addr;

1 SYS19 56 2269 2

修改的內(nèi)容在兩個數(shù)據(jù)塊中,但回滾段只占用了一個數(shù)據(jù)塊。

測試2:設置pctfree較小的情況

droptabletrollsegment;createtabletrollsegment(

FID integer,

Fname varchar2(400),

Fothers varchar2(400)

) tablespaceodsdpctfree1

insertintotrollsegmentselectrownum, rpad('name',400,rownum),rpad('other',400,rownum)fromdba_objectswhererownum<1000

commit

selectdbms_rowid.rowid_block_number(rowid),count(*) fromtrollsegment groupbydbms_rowid.rowid_block_number(rowid)selectdbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_relative_fno(rowid),fid fromtrollsegment wherefid = 10

updatetrollsegment setfname = replace(fname,'name','eman')wherefid = 10orfid = 30

SELECTs.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk FROMv$session s,v$transaction t WHEREs.saddr=t.ses_addr;

轉(zhuǎn)儲回滾段內(nèi)容

SELECTb.name,a.xidusn, xidslot, xidsqn

FROMv$transaction a, v$rollname b

wherea.XIDUSN = b.usn;

1 _SYSSMU16$16 26 799

SQL> alter system dump undo block '_SYSSMU16$'

2 xid 16 26 799;

System altered

*** 2009-02-07 11:12:10.687

********************************************************************************

Undo Segment: _SYSSMU16$ (16)

xid: 0x0010.01a.0000031f

Low Blk : (0, 0)

High Blk : (3, 127)

Object Id : ALL

Layer : ALL

Opcode : ALL

Level : 2

********************************************************************************

UNDO BLK: Extent: 2 Block: 78 dba (file#, block#): 56,0x00000857

xid: 0x0010.01a.0000031f seq: 0x52 cnt: 0x4f irb: 0x4f icl: 0x0 flg: 0x0000

Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset

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

0x01 0x1fac 0x02 0x1f54 0x03 0x1efc 0x04 0x1ec4 0x05 0x1e6c

0x06 0x1e14 0x07 0x1ddc 0x08 0x1d84 0x09 0x1d2c 0x0a 0x1cf4

0x0b 0x1c9c 0x0c 0x1c44 0x0d 0x1c0c 0x0e 0x1bb4 0x0f 0x1b5c

0x10 0x1b24 0x11 0x1acc 0x12 0x1a74 0x13 0x1a3c 0x14 0x1a04

0x15 0x19ac 0x16 0x1954 0x17 0x191c 0x18 0x18c4 0x19 0x186c

0x1a 0x1834 0x1b 0x17dc 0x1c 0x1784 0x1d 0x174c 0x1e 0x16f4

0x1f 0x169c 0x20 0x1664 0x21 0x160c 0x22 0x15b4 0x23 0x157c

0x24 0x1524 0x25 0x14cc 0x26 0x1494 0x27 0x143c 0x28 0x13e4

0x29 0x13ac 0x2a 0x1354 0x2b 0x12fc 0x2c 0x12c4 0x2d 0x126c

0x2e 0x1214 0x2f 0x11dc 0x30 0x1184 0x31 0x112c 0x32 0x10f4

0x33 0x109c 0x34 0x1044 0x35 0x100c 0x36 0x0fb4 0x37 0x0f5c

0x38 0x0f24 0x39 0x0ecc 0x3a 0x0e74 0x3b 0x0e3c 0x3c 0x0de4

0x3d 0x0d8c 0x3e 0x0d54 0x3f 0x0cfc 0x40 0x0ca4 0x41 0x0c6c

0x42 0x0c14 0x43 0x0bbc 0x44 0x0b84 0x45 0x0b2c 0x46 0x0ad4

0x47 0x0a9c 0x48 0x0a44 0x49 0x09ec 0x4a 0x09b4 0x4b 0x095c

0x4c 0x0904 0x4d 0x08cc 0x4e 0x06b4 0x4f 0x04b4

*-----------------------------

* Rec #0x4f slt: 0x1a objn: 92112(0x000167d0) objd: 92112 tblspc: 11(0x0000000b)

* Layer: 11 (Row) opc: 1 rci 0x4e

Undo type: Regular undo Last buffer split: No

Temp Object: No

Tablespace Undo: No

rdba: 0x00000000

*-----------------------------

KDO undo record:

KTB Redo

op: 0x04 ver: 0x01

op: L itl: xid: 0x0013.02e.00000354 uba: 0x0e0008de.0052.31

flg: C--- lkc: 0 scn: 0x0001.85698ef5

KDO Op code: URP row dependencies Disabled

xtype: XA bdba: 0x03801d10 hdba: 0x03801d0b

itli: 1 ispac: 0 maxfr: 4858

tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 88

ncol: 3 nnew: 1 size: 0

col 1: [400]

65 6d 61 6e 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

*-----------------------------

* Rec #0x4e slt: 0x1a objn: 92112(0x000167d0) objd: 92112 tblspc: 11(0x0000000b)

* Layer: 11 (Row) opc: 1 rci 0x00

Undo type: Regular undo Begin trans Last buffer split: No

Temp Object: No

Tablespace Undo: No

rdba: 0x00000000

*-----------------------------

uba: 0x0e000857.0052.4d ctl max scn: 0x0001.85698f76 prv tx scn: 0x0001.85698f79

KDO undo record:

KTB Redo

op: 0x04 ver: 0x01

op: L itl: xid: 0x0013.02e.00000354 uba: 0x0e0008de.0052.35

flg: C--- lkc: 0 scn: 0x0001.85698ef5

KDO Op code: URP row dependencies Disabled

xtype: XA bdba: 0x03801d0d hdba: 0x03801d0b

itli: 1 ispac: 0 maxfr: 4858

tabn: 0 slot: 2(0x2) flag: 0x2c lock: 0 ckix: 88

ncol: 3 nnew: 1 size: 0

col 1: [400]

65 6d 61 6e 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33

30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30 33 30

+++++++++++ Next block not in extent map - rollback segment has been shrunk.

+ WARNING + Block dba (file#, block#): 0,0x00000000

相關文章:
主站蜘蛛池模板: 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 天坛家具官网| 四川实木门_成都实木门 - 蓬溪聚成门业有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 牛皮纸|牛卡纸|进口牛皮纸|食品级牛皮纸|牛皮纸厂家-伽立实业 | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 深圳南财多媒体有限公司介绍| 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 湖北省煤炭供应链综合服务平台| 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 |