Oracle数据库NOLOGGING操作及重做日志相关知识详解
1. I/O调优策略
为了优化数据库的I/O性能,可以采用以下策略:
- 将重做日志组的成员放置在不同的存储位置,避免并行写入时产生竞争。
- 不要对重做日志文件使用RAID - 5。
- 使用自动存储管理(ASM),在Oracle 11g中原始设备的使用已被弃用,在Oracle 12c中不再支持。
- 为重做日志文件使用更快的磁盘。
- 如果使用了归档功能,配置重做日志存储,确保当前重做日志组的写入操作不会与正在归档的组的读取操作产生竞争。
2. 重要等待事件分析
2.1 ‘log file sync’事件
当Oracle前台进程发出COMMIT或ROLLBACK操作并等待其完成时,会出现’log file sync’等待事件。部分等待时间包括等待LGWR进程将会话事务的重做记录从日志缓冲区复制到磁盘。
理解’log file sync’延迟原因的关键是比较等待’log file sync’的平均时间和等待’log file parallel write’的平均时间,然后采取相应措施:
- 如果平均等待时间相似,说明重做日志文件的I/O导致了延迟,应遵循I/O调优指南。
- 如果’log file parallel write’的平均等待时间明显小于或大于’log file sync’,则延迟是由COMMIT/ROLLBACK期间重做日志机制的其他部分(与I/O无关)引起的。有时会出现重做闩锁争用,表现为’latch free’或’LGWR wait for redo copy’等待事件。