[20201207]关于ORACLE IMU的一些疑问.txt --//关于oracle IMU,我自己本人有太多的疑问,我自己很久以前在测试栽过跟头。 --// http://blog.itpub.net/267265/viewspace-2137720/ => [20170421]警惕打开IMU对测试的影响.txt --//前几天看别人的测试:https://www.modb.pro/db/23012 =>关于ORACLE In Memory Undo的一些疑问 --//对方的测试结论: 测试结论: 1、当使用IMU时,flush buffer 不会触发IMU Flushes,还没有IMU Flushes的脏块是不会落盘的 2、checkpoint时会IMU Flushes。 --//但是我的测试checkpoint时不一定做IMU Flushes。我重复测试看看: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production --//session 1: create table test_imu(id number,c varchar2(20)); insert into test_imu values (1,'ABCDEF'); commit; SCOTT@book> select rowid,id from test_imu; ROWID ID ------------------ ---------- AAAXFvAAEAAAA1/AAA 1 SCOTT@book> @ rowid AAAXFvAAEAAAA1/AAA OBJECT FILE BLOCK ROW ROWID_DBA DBA TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ---------------------------------------- 94575 4 3455 0 0x1000D7F 4,3455 alter system dump datafile 4 block 3455 2.测试: --//执行alter system checkpoint;多次保证脏块写盘。 SYS@book> select * from v$sysstat where name like '%IMU%'; STATISTIC# NAME CLASS VALUE STAT_ID ---------- ---------------------------------------- ---------- ---------- ---------- 374 IMU commits 128 9998 1914489094 375 IMU Flushes 128 1015 2099506212 376 IMU contention 128 16 2909373607 377 IMU recursive-transaction flush 128 25 2591100633 378 IMU undo retention flush 128 0 2087226422 379 IMU ktichg flush 128 45 1206609541 380 IMU bind flushes 128 0 2756376339 381 IMU mbu flush 128 0 3723686946 382 IMU pool not allocated 128 129 659017805 383 IMU CR rollbacks 128 23 2225124543 384 IMU undo allocation size 128 49745632 244193920 385 IMU Redo allocation size 128 11180980 3945654623 386 IMU- failed to get a private strand 128 129 2412863545 13 rows selected. --//session 1: SCOTT@book> update test_imu set c='abcdef'; 1 row updated. --//session 2: SYS@book> alter system checkpoint; System altered. SYS@book> select * from v$sysstat where name like '%IMU%'; STATISTIC# NAME CLASS VALUE STAT_ID ---------- ---------------------------------------- ---------- ---------- ---------- 374 IMU commits 128 9998 1914489094 375 IMU Flushes 128 1015 2099506212 376 IMU contention 128 16 2909373607 377 IMU recursive-transaction flush 128 25 2591100633 378 IMU undo retention flush 128 0 2087226422 379 IMU ktichg flush 128 45 1206609541 380 IMU bind flushes 128 0 2756376339 381 IMU mbu flush 128 0 3723686946 382 IMU pool not allocated 128 129 659017805 383 IMU CR rollbacks 128 23 2225124543 384 IMU undo allocation size 128 49745848 244193920 385 IMU Redo allocation size 128 11180980 3945654623 386 IMU- failed to get a private strand 128 129 2412863545 13 rows selected. --//IMU Flushes 前后次数不变,还是1015. BBED> x /rnc dba 4,3455 *kdbr[0] rowdata[0] @8175 ---------- flag@8175: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8176: 0x00 cols@8177: 2 col 0[2] @8178: 1 col 1[6] @8181: ABCDEF --//你可以发现并没有将脏块写盘。 --//注:你可以反复多次,有时候会写盘有时候不会,不能以一次的结果下定论。 3.总结: --//也就是alter system checkpoint ;不一定会IMU Flushes。实际上即使触发IMU Flushes,该脏块也不一定写盘,可能是别的脏块写盘。 --//至于什么情况下导致这样脏块写盘,我不是很清楚。总之你执行alter system checkpoint ;多次,肯定会出现写盘情况。 SYS@book> alter system checkpoint; System altered. SYS@book> select * from v$sysstat where name like '%IMU%'; STATISTIC# NAME CLASS VALUE STAT_ID ---------- ---------------------------------------- ---------- ---------- ---------- 374 IMU commits 128 10001 1914489094 375 IMU Flushes 128 1016 2099506212 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 IMU contention 128 17 2909373607 377 IMU recursive-transaction flush 128 25 2591100633 378 IMU undo retention flush 128 0 2087226422 379 IMU ktichg flush 128 45 1206609541 380 IMU bind flushes 128 0 2756376339 381 IMU mbu flush 128 0 3723686946 382 IMU pool not allocated 128 129 659017805 383 IMU CR rollbacks 128 23 2225124543 384 IMU undo allocation size 128 49753216 244193920 385 IMU Redo allocation size 128 11180980 3945654623 386 IMU- failed to get a private strand 128 129 2412863545 13 rows selected. BBED> x /rnc dba 4,3455 *kdbr[0] rowdata[0] @8175 ---------- flag@8175: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8176: 0x01 cols@8177: 2 col 0[2] @8178: 1 col 1[6] @8181: abcdef --//现在已经脏块写盘。 4.附上imux.sql脚本: $ cat imux.sql column sid format 9999 column minutes format 9999999 column program format a43 column event format a48 select sid, round(( sysdate - to_date(ktcxbstm,'mm/dd/rr hh24:mi:ss') ) * 24 * 60) minutes, decode(bitand(ktcxbflg,2),2,1,0) bit2, to_number(ktifprpc,'xxxxxxxxxxxxxxxx') - to_number(ktifprpb,'xxxxxxxxxxxxxxxx') redo_bytes, to_number(ktifpupc, 'xxxxxxxxxxxxxxxx') - to_number(ktifpupb, 'xxxxxxxxxxxxxxxx') undo_bytes, program, event from x$ktifp, x$ktcxb, v$session ses where ktifpxcb = ktcxbxba and ktcxbses = saddr order by ktcxbstm desc ;
[20201207]关于ORACLE IMU的一些疑问.txt
来源:这里教程网
时间:2026-03-03 16:17:07
作者:
编辑推荐:
- [20201207]关于ORACLE IMU的一些疑问.txt03-03
- oracle 修改数据文件路径(四种方式)03-03
- Reliable Key Holder for Chastity Sub Anywhere in the World03-03
- [20201120]使用event 10049.txt03-03
- 查看数据字典03-03
- 查找/删除重复的数据(单个字段和多个字段条件)03-03
- 通过外键找主键03-03
- spm执行计划的绑定03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle删除表中数据(delete与truncate)
oracle删除表中数据(delete与truncate)
26-03-03 - SQL Server数据库mdf文件中了勒索病毒*.mdf.[helpbackup@email.tg].Devos
- G006-ORACLE-INS-SIFS-01 ORACLE 19C SIFS Ins ON RHEL 8.2
- G008-ORACLE-DG ORACLE 19C Active Data Guard DML Redirection
- 查看oracle数据库中,哪些表的字段是null值比较多
查看oracle数据库中,哪些表的字段是null值比较多
26-03-03 - Oracle数据库服务器dbf文件中了勒索病毒,扩展名被篡改为.CC7H
Oracle数据库服务器dbf文件中了勒索病毒,扩展名被篡改为.CC7H
26-03-03 - 数据库范式
数据库范式
26-03-03 - 沙龙回顾丨开发者掌握这些背后的技术路径,可助力企业智能化升级
沙龙回顾丨开发者掌握这些背后的技术路径,可助力企业智能化升级
26-03-03 - Oracle的awr报告分析
Oracle的awr报告分析
26-03-03 - DDD 在京东 DevOps 项目协作领域的落地实战
DDD 在京东 DevOps 项目协作领域的落地实战
26-03-03
