步骤 1 检查statspack报告的SQL部分。
MLOG$_table_name”表,这个表是“table_name”的log表,oracle利用log表来跟踪表的变化情况
如果mlog$表的hwm太高,会导致尽管该表记录数不多,但在做全表扫描时仍然产生了很高的物理读(mlog$表之所以会有很高的hwm,应该是因为某段时间内因为网络中断或其它原因导致数据同步失败,历史记录一直保存在mlog$表内,后来同步恢复,oracle自动将历史记录delete掉,但hwm并未降低)。因此,解决系统IO过高问题的关键是降低实体化视图相关的mlog$表的hwm。
步骤 2 可以使用如下语句估算一下MLOG$表是否存在高hwm
select segment_name, bytes/1024/1024 from user_segments where segment_name like 'MLOG$%'
如果查询出来的MLOG表占用的空间很大,那就说明此MLOG表存在HWM。
处理方法:
1. 以oracle用户登录主机。
2. 连接到数据库。
sqlplus "/ as sysdba"
3. 将各业务节点JOB时间延长到10个小时,并手动执行JOB一次。
使用执行JOB用户登陆数据库,查找JOB号和刷新组名字。
select job, rname from user_refresh;
JOB:job号
RNAME:刷新组名
4. 修改job刷新间隔时间为10个小时。
SQL> BEGIN
DBMS_REFRESH.CHANGE(
name => 'SYNC_GROUP', --第一步中查询的刷新组名
next_date => SYSDATE,
interval => 'sysdate + 36000/86400');
END;
5. 手动执行各业务节点job。
SQL> exec dbms_job.run(354); --第一步中查询的JOB号
SQL> commit;
6. 清理MLOG表高水位。
以“MLOG$_table_name”表为例。高水位清除操作需要用两个session连接管理节点数据库,配合操作才可以完成清除工作。
7. 在第一个session中操作,对“table_name”表加排它锁,防止其它人更新该表(相应的mlog$表也就不会再有变化)。
--session 1
SQL> LOCK TABLE table_name IN EXCLUSIVE MODE;
8. 在第二个session中操作,将“table_name”表的记录复制到临时表“TEMP_MLOG_table_name”中。
--session 2
SQL>CREATE TABLE TEMP_MLOG_table_name AS SELECT * FROM MLOG$_table_name;
9. 在第二个session中操作,用truncate清空“MLOG$_table_name”表,降低该表的hwm。
--session 2
SQL> TRUNCATE TABLE MLOG$_table_name;
10. 在第二个session中操作,将临时表的记录重新插回“MLOG$_table_name”表,然后drop掉临时表“TEMP_MLOG_table_name”。
--session 2
SQL> INSERT INTO MLOG$_table_name SELECT * FROM TEMP_MLOG_table_name;
SQL> DROP TABLE TEMP_MLOG_table_name;
SQL> COMMIT;
11. 在第一个session中操作,执行rollback,释放“table_name”表的排它锁。
--session 1
SQL> ROLLBACK;
12. 恢复各业务数据库的同步JOB间隔执行时间,并手工执行一次JOB。
完成以上操作后,mlog$表的hwm被置位,系统IO使用大幅度降低,磁盘IO繁忙率恢复正常。
分享到:
相关推荐
mlog - 一个简单的Go日志记录模块,拥有5种日志分级,一个可选的旋转和stdout与stderr输出日志文件功能
2023-02-13.mlog
2023-02-15.mlog
M-LOG相关文档请移步这里查看: http://www.javaos.org/group-62-1.html 如果对M-LOG有建议和疑问也可以加入群组一起讨论。
2020-11-27 11:26:11|localhost-startStop-1|INFO |com.mchange.v2.log.MLog,80,|-> MLog clients using log4j logging. 2020-11-27 11:26:11|localhost-startStop-1|INFO |com.mchange.v2.c3p0.C3P0Registry,204,...
Beryl是MLog的名字。 这是论文“ MLog:迈向声明式数据库内机器学习”的实现。 这项工作主要由李旭鹏和我完成。 我们认为这是一件美丽的作品。 有关更多信息,请参阅本文。 依存关系: jdk 1.8 maven libzmq ...
--4确认磁盘空间足够,增加一个数据文件alter tablespace MLOG_NORM_SPACEadd datafile '/oracl
欢迎来到GitHub Pages 您可以使用[GitHub上的编辑器]( )维护和预览Markdown文件中网站的内容。 每当您提交到该存储库时,GitHub Pages都将运行从Markdown文件中的内容重建站点中的页面。 降价促销 ...
mlog-scala.zip,mlog日志facade的mlog scalaa scala包装器(在mchange commons java中定义)
使用Sublime Text的时候,可以方便地记录下需要完成的事情。 TODO\FIXED\DELAY WARNING\ERROR\INFO... 标签:Sublime
超级非常使用的一款工具代码类,超级好学习
MLog 为您提供了更多传统 NSLog 无法获得的调试信息,例如方法名称、行号等。 ###如何使用它? 使用MLog/MDLog的区别在于,一个打印日期和时间,另一个在MDLog中没有'D'表示它打印日期。 输出类似于...
编程手册 对于编程的人来说离不开它,可以在官方下载
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog). log4j:WARN Please initialize the log4j system properly.
WAF-FLE-自述文件 Web应用程序防火墙:快速日志和事件控制台 版权所有(C)2011-2014 Klaubert Herr有关新的(发布的)版本,请...mlog2waffle:实时,紧跟日志尾部或在crontab中计划的批处理 mlogc:实时,通过ModS
算法集合Python 每当遇到一个有趣的问题时,我都会记录我学会解决该问题的算法。 该存储库的目标是拥有干净,有效和最重要的正确代码。... -O(mlog(n))-堆实现 :red_triangle_pointed_up: :red_triangle_pointed_
本文提出一种基于K叉树的优先队列的算法,通过建立K叉树堆的数据结构,从n个元素中得到m个元素的优先队列,其算法的最坏时间复杂度为$O(2mlog_2+n)$....
O( Mα(M,N) ) bound instead of the weaker O( Mlog∗ N ) bound in prior editions. Chapter 12 adds material on suffix trees and suffix arrays, including the linear-time suffix array construction ...
新颖的自制表情包工具,沙雕图生产效率高 复读机 兼备复读,精确回复,模糊回复的仿生人 Bestdori自制谱作图器 一步查询,获取谱面完整图片,让你的谱面活灵活现 圣杯战争 兴趣使然的简单游戏演示 营销号文案生成 ...
高嘉煊 - 《浅谈图的点着色问题》 戴 言 - 《浅谈格路计数相关问题》 李佳衡 - 《算法竞赛中一些数论问题的推广与高斯整数初探》 范致远 - 《“基础圆方树练习题”命题报告》 徐翊轩 - 《“整点计数”...