redo文件四

v$session_wait
用来查询redo buffer的空间信息
select sid,event,seconds_in_wait,state from v$session_wait where
event = 'log buffer space';


v$sysstat

redo buffer空间分配的重试次数及redo的数量

redo entries
select name,value from v$sysstat where name
in ('redo entries','redo buffer allocation retries');


v$system_event
the log file switch waits because of log switchs
select event,total_waits,time_waited,average_wait
from v$system_event where
event like 'log file switch compleciont%'
增加组数


当LGWR查找空闲可用的redo日志文件组的时候DBWn没有完成checkpoint
1、在alter日志文件中,可以找到相关“checkpoint not complete”的字样
2、select event,total_waits,time_waited,average_wait
from v$system_event where event like 'log file switch (check%';
增加redo log 组的数量或者是增大redo 日志文件的大小



当arch进程未完成归档时,会导致LGWR写入redo日志文件
1、归档日志的磁盘空间是否已经满了
2、增加redo日志组
3、select event,total_waits,time_waited,average_wait
from v$system_event where event like 'log file switch (arch%;

修改arch进程的最大数量,只要修改参数LOG_ARCHIVE_MAX_PROCESS初始化参数即可



 Log File Switch-日志文件切换
  当这个等待出现时,表示所有的提交(commit)的请求都需要等待"日志文件切换"的完成。
  Log file Switch 主要包含两个子事件:
  log file switch (archiving needed)
  log file switch (checkpoint incomplete)
  log file switch (archiving needed)
  这个等待事件出现时通常是因为日志组循环写满以后,第一个日志归档尚未完成,出现该等待。出现该等待,可能表示io 存在问题。解决办法:
  可以考虑增大日志文件和增加日志组
  移动归档文件到快速磁盘
  调整log_archive_max_processes .
  log file switch (checkpoint incomplete)-日志切换(检查点未完成)
  当你的日志组都写完以后,LGWR 试图写第一个log file,如果这时数据库没有完成写出记录在第一个log file 中的dirty 块时(例如第一个检查点未完成),该等待事件出现。
  该等待事件通常表示你的DBWR 写出速度太慢或者IO 存在问题。
  为解决该问题,你可能需要考虑增加额外的DBWR 或者增加你的日志组或日志文件大小。


posted @   KEL  阅读(137)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示