[20230307]如何知道启用IMU.txt --//上个星期对生产系统redo做了一个转储,主要是想分析为什么这套系统每天产生的日志有点大。 --//我当时认为这套系统单机应该使用开启IMU。实际上的情况该系统打开附加日志,不可能工作在IMU下。 --//那么如何知道数据库启用IMU呢?对于相关知识有点生疏,复习一下。 --//首先有几种情况oracle不会启用IMU。 1.rac环境。 2.数据库开启flashback。 3.打开附加日志。 4.当然一种情况比较特殊就是如果写满IMU缓存,系统也会切换到传统模式。 5.当然如果切换日志,也会导致IMU信息写盘。alert会出现Private Strand Flush Not Complete之类的提示。 6.如果执行alter system checkpoint也会导致IMU信息写盘,但是我以前遇到的情况是不确定,有时写有时不写。 具体细节我一直不是很清楚.. --//如何知道当前数据库启用IMU呢,自己做一些总结: 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 2.首先不能简单通过隐含参数_in_memory_undo确定。 SYS@book> alter database flashback on; Database altered. SYS@book> @ hide _in_memory_undo NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD --------------- ---------------------------------------------- ------------- ------------- ------------ ----- --------- _in_memory_undo Make in memory undo for top level transactions TRUE TRUE TRUE TRUE IMMEDIATE --//我设置数据库flashback on;,但是_in_memory_undo并不会自动设置false。 --//当然如果你发现_in_memory_undo=false,那么一定关闭IMU。 3.最简单方法就是查看v$sysstat视图: select * from v$sysstat where name like '%IMU%'; select name,value from v$sysstat where name like '%commits%'; --//select * from v$sgastat where name='KTI-UNDO'; --//你可以等一小段时间再次执行看看是否变化来确定IMU的启用。 --//注意如果IMU commits的值有变化说明启用了IMU,因为数据库可能在运行过程打开flashback或者附加日志.这样就关闭IMU. SYS@book> alter database flashback on; Database altered. SYS@book> select name,value from v$sysstat where name like '%commits%'; NAME VALUE ------------ ----- user commits 13824 IMU commits 10727 --//执行一些小的dml操作并提交!!. SYS@book> select name,value from v$sysstat where name like '%commits%'; NAME VALUE ------------ ----- user commits 13826 IMU commits 10727 --//数据库目前打开flashback on,IMU commits的值没有发生了变化!! SYS@book> alter database flashback off; Database altered. SYS@book> select name,value from v$sysstat where name like '%commits%'; NAME VALUE ------------ ----- user commits 13828 IMU commits 10727 --//执行一些小的dml操作并提交!!. SYS@book> select name,value from v$sysstat where name like '%commits%'; NAME VALUE ------------ ----- user commits 13834 IMU commits 10733 --//可以发现IMU commits的值增加,说明开启IMU.这样可以快速判断.感觉这是最简单的方法!! 4.其它方法: $ cat imu.sql SELECT INDX ,FIRST_BUF_KCRFA ,last_buf_kcrfa ,PNEXT_BUF_KCRFA_CLN nxtbufadr ,NEXT_BUF_NUM_KCRFA_CLN nxtbuf# ,BYTES_IN_BUF_KCRFA_CLN "B/buf" ,PVT_STRAND_STATE_KCRFA_CLN state ,STRAND_NUM_ORDINAL_KCRFA_CLN strand# ,PTR_KCRF_PVT_STRAND stradr ,INDEX_KCRF_PVT_STRAND stridx ,SPACE_KCRF_PVT_STRAND strspc ,TXN_KCRF_PVT_STRAND txn ,TOTAL_BUFS_KCRFA totbufs# ,STRAND_SIZE_KCRFA strsz FROM X$KCRFSTRAND ; --//通过查询X$KCRFSTRAND视图,如果PTR_KCRF_PVT_STRAND=00(也就是stradr=00),基本可以判断没有使用IMU. $ cat imuz.sql SELECT indx ,inst_id ,ktifpno ,ktifpxcb tx_addr ,ktifpupb undo_begin ,ktifpupc undo_cur ,ktifpupe undo_end ,ktifprpb redo_begin ,ktifprpc redo_cur ,ktifprpe redo_end ,TO_NUMBER (ktifpupc, 'XXXXXXXXXXXXXXXX') - TO_NUMBER (ktifpupb, 'XXXXXXXXXXXXXXXX') undo_usage ,TO_NUMBER (ktifpupe, 'XXXXXXXXXXXXXXXX') - TO_NUMBER (ktifpupb, 'XXXXXXXXXXXXXXXX') undo_size ,TO_NUMBER (ktifprpc, 'XXXXXXXXXXXXXXXX') - TO_NUMBER (ktifprpb, 'XXXXXXXXXXXXXXXX') redo_usage ,TO_NUMBER (ktifprpe, 'XXXXXXXXXXXXXXXX') - TO_NUMBER (ktifprpb, 'XXXXXXXXXXXXXXXX') redo_size ,KTIFPPSI ,KTIFPRBS ,KTIFPTCN ,KTIFPFLC ,KTIFPOPC ,ktifptxflg FROM x$ktifp where TO_NUMBER (ktifprpe, 'XXXXXXXXXXXXXXXX') - TO_NUMBER (ktifprpb, 'XXXXXXXXXXXXXXXX') !=0 ; --//如果一个业务繁忙的系统,执行以上有输出,可以确定启用IMU,测试环境也很容易模拟,执行一些小的dml不提交,再执行以上命令有 --//输出,可以确定启用IMU。
[20230307]如何知道启用IMU.txt
来源:这里教程网
时间:2026-03-03 18:28:29
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 中国OCM联盟隆重落户ITPUB社区,百位OCM已入驻,欢迎更多的OCM加入我们哦!
- 【数据库数据恢复】Oracle数据库ASM磁盘组掉线如何恢复数据?
【数据库数据恢复】Oracle数据库ASM磁盘组掉线如何恢复数据?
26-03-03 - 货拉拉“搅局”,跑腿市场杀出个程咬金?
货拉拉“搅局”,跑腿市场杀出个程咬金?
26-03-03 - Oracle数据库用户安全策略功能介绍
Oracle数据库用户安全策略功能介绍
26-03-03 - 基于19c RAC的 RU补丁自动升级 标准化文档
基于19c RAC的 RU补丁自动升级 标准化文档
26-03-03 - 你的Oracle是不是这个时间发生的故障?
你的Oracle是不是这个时间发生的故障?
26-03-03 - 宠物细分赛道,猫砂品类领导者萌尾与IDAS合作开展设计趋势研究
宠物细分赛道,猫砂品类领导者萌尾与IDAS合作开展设计趋势研究
26-03-03 - 仓储会员店山姆、Costco、盒马们也开始内卷?
仓储会员店山姆、Costco、盒马们也开始内卷?
26-03-03 - 面对海量的监控视频数据应该如何存储?
面对海量的监控视频数据应该如何存储?
26-03-03 - 反向索引处理前%
反向索引处理前%
26-03-03
