观察频繁的日志文件切换,尽管增加了重做日志的大小
Posted
技术标签:
【中文标题】观察频繁的日志文件切换,尽管增加了重做日志的大小【英文标题】:Observing frequent log file switches depsite increasing the redo log size 【发布时间】:2015-03-09 09:12:10 【问题描述】:我们的重做日志大小为 256m,然后增加到 512,最终达到 1024M,目前有 8 个日志。尽管我们每 1 分钟观察一次日志切换发生并且它正在侵蚀我们的性能,
来自 AWR 的快照
Load Profile
Per Second Per Transaction Per Exec Per Call
DB Time(s): 1.0 0.1 0.00 0.01
DB CPU(s): 0.6 0.1 0.00 0.01
Redo size: 34,893.0 4,609.0
Instance Activity Stats - Thread Activity
Statistics identified by '(derived)' come from sources other than SYSSTAT
Statistic Total per Hour
log switches (derived) 82 59.88
关于如何减少日志文件切换次数的任何建议,我已阅读理想情况下应该在 15-20 分钟内切换 1 次。
【问题讨论】:
【参考方案1】:每秒 34893 字节重做 = 每小时 125614800 字节,即大约 120 MB,远不及 1 个重做日志组的大小。
基于此和重做日志的大小,我想说一些东西会强制定期切换日志。内置参数archive_lag_target
在指定的秒数过后强制进行日志切换,这是我要检查的第一件事。除此之外,它可能是其他任何登录到数据库并手动强制日志切换的东西,例如 cron 作业。 (每 60 分钟 60 次日志切换,这很可疑)
【讨论】:
我同意,似乎首先要寻找的是在某处运行脚本的计划作业,其中正在发出流氓“ALTER SYSTEM SWITCH LOGFILE”或“ALTER SYSTEM ARCHIVE LOG CURRENT”。 SQL> 显示参数 archive_lag_target NAME TYPE VALUE ---------------------------------- -------------------------------------------------- - ------------- archive_lag_target 整数 0 谢谢,实际上是正确的,有一个 crontab 条目可以每分钟切换一个日志文件。 export ORACLE_HOME=/u01/oraclesw/product/11.2.0/db export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=**** sqlplus / as sysdba 谢谢,实际上是正确的,有一个 crontab 条目可以每分钟切换一个日志文件。以上是关于观察频繁的日志文件切换,尽管增加了重做日志的大小的主要内容,如果未能解决你的问题,请参考以下文章