Oracle Eygle Redo 与归档机制深度
Oracle Eygle Redo 与归档机制深度
来源:盖国强 (Eygle) / eygle.com 适用版本:Oracle Database 全版本 文档版本:v1.0 / 2026-07-22
1. 概述
Eygle 对 Redo 机制有深度解析[1]。
详细见:Oracle Redo 深度解析、Oracle 重做日志 Redo Log 机制详解。
2. Redo 作用
2.1 核心功能
- 恢复(Recovery)
- 保证持久性
- 事务日志
2.2 Eygle 强调
- Redo 是数据库生命线
- 不可丢失
- 必须保护
3. Redo 结构
3.1 Redo Record
- 变更向量
- 改动描述
- 块地址
- SCN
3.2 Redo Thread
- 单实例:1 个 thread
- RAC:每实例 1 个
- 独立 Redo
3.3 Redo Log Group
- 多个成员
- 镜像
- 高可用
4. LGWR 写入
4.1 触发条件
- COMMIT
- 1/3 满
- 1MB
- 3 秒
- DBWn 写前
4.2 同步
- COMMIT 同步
- 等待 log file sync
- 保证持久
4.3 Eygle 要点
- LGWR 串行写
- 性能关键
- Redo Log 高速磁盘
5. Redo Buffer
5.1 大小
ALTER SYSTEM SET log_buffer=64M SCOPE=SPFILE;
5.2 监控
SELECT name, value FROM v$sysstat
WHERE name LIKE 'redo%';
5.3 等待
SELECT event, time_waited
FROM v$system_event
WHERE event LIKE '%redo%' OR event LIKE '%log file%';
6. Redo Log Group
6.1 配置
ALTER DATABASE ADD LOGFILE GROUP 4
('/u01/redo/redo04a.log', '/u02/redo/redo04b.log') SIZE 200M;
6.2 Eygle 建议
- 至少 3 组
- 多路复用
- 不同磁盘
- 大小足够
6.3 大小
- 30 分钟切换一次
- 监控
- 调整
6.4 切换
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM ARCHIVE LOG CURRENT;
7. 归档模式
7.1 启用
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
7.2 验证
ARCHIVE LOG LIST;
SELECT log_mode FROM v$database;
7.3 Eygle 强调
- 生产必开归档
- 否则无法在线备份
- 灾难恢复基础
8. ARCH 进程
8.1 数量
ALTER SYSTEM SET log_archive_max_processes=4;
8.2 状态
SELECT process, status FROM v$archive_processes;
8.3 归档路径
ALTER SYSTEM SET log_archive_dest_1='location=/u01/archive';
ALTER SYSTEM SET log_archive_dest_2='location=/u02/archive';
9. 归档监控
9.1 路径状态
SELECT dest_id, status, error
FROM v$archive_dest
WHERE dest_id <= 2;
9.2 序列
SELECT max(sequence#) FROM v$archived_log;
SELECT max(sequence#) FROM v$log;
9.3 Eygle 检查
- 归档正常
- 序列连续
- 无错误
10. 常见问题
10.1 ORA-00257
- 归档空间满
- 清理
- 扩容
详细见:Oracle 归档日志满处理。
10.2 log file switch
- Redo Log 太小
- 加大
- 监控
10.3 log file sync
- COMMIT 慢
- Redo Log I/O
- 优化
10.4 ORA-00312 / ORA-00313
- Redo Log 丢失
- 不完全恢复
- 谨慎
11. Redo 性能
11.1 Redo Log 优化
- 高速磁盘
- 独立
- 大小足够
11.2 LOG_BUFFER
- 适当大小
- 监控等待
11.3 COMMIT 优化
- 事务级
- 批量
- NOWAIT(慎用)
12. 备份归档
12.1 RMAN
RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
RMAN> BACKUP ARCHIVELOG FROM TIME 'SYSDATE-1';
12.2 保留
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
12.3 Eygle 建议
- 多重备份
- 异地
- 验证
13. Eygle 案例
13.1 案例:Redo 丢失
- 不完全恢复
- RESETLOGS
- 评估
13.2 案例:归档满
- RMAN 清理
- 扩容
- 监控
13.3 案例:LGWR 慢
- 磁盘 I/O
- Redo Log 优化
- 监控
14. 最佳实践
- 归档模式:必开
- 多路 Redo:每组 2+
- 大小:30 分钟切换
- 高速磁盘:独立
- 归档空间:足够
- 监控:序列、错误
- RMAN 备份:归档
- 多重:异地
- 演练:故障
- 原理:理解
15. 参考资料
[1] Eygle, “Redo 与归档机制”, https://www.eygle.com [2] 盖国强, 《深入解析 Oracle》