目录
前言:
在线日志(Online Redo Log)、重做日志(Redo Log)和归档日志(Archive Log)是Oracle数据库中关键的日志机制,它们共同确保数据的持久性和可恢复性。以下是它们之间的关系。
一、基本概念
1.重做日志(Redo Log):
记录数据库所有变更操作的日志文件,用于数据恢复。
2.在线重做日志(Online Redo Log):
当前正在使用的重做日志组,处于活跃状态。
3.归档日志(Archive Log):
在线重做日志被填满后被归档保存的历史日志。
二、三者关系
1.重做日志包含在线日志:
- 重做日志是总称,包含在线重做日志和归档日志
- 在线重做日志是重做日志的当前活动部分
2.日志循环过程:
- Oracle以循环方式使用在线重做日志组
- 当一个在线日志组写满后,发生日志切换(log switch)
- 如果数据库处于归档模式(ARCHIVELOG),写满的在线日志会被归档进程(ARCn)复制为归档日志 然后该日志组可以被重用
3.功能分工:
- 在线重做日志:用于实例恢复(Instance Recovery)
- 归档日志:用于介质恢复(Media Recovery)和时间点恢复(Point-in-Time Recovery)
三、关键区别
特性 | 在线重做日志 | 归档日志 |
---|---|---|
状态 | 当前活动 | 历史记录 |
存储位置 | 固定位置 | 可配置的归档目标 |
是否循环使用 | 是 | 否 |
是否可删除 | 不可手动删除 | 可手动删除(在备份后) |
恢复用途 | 实例崩溃恢复 | 介质恢复、时间点恢复 |
是否必需 | 必需 | 仅在ARCHIVELOG模式下创建 |
四、实际应用中的关系
1、非归档模式(NOARCHIVELOG):
- 只有在线重做日志
- 日志切换时直接覆盖旧的在线日志
- 只能恢复到最后一次完整备份
2、归档模式(ARCHIVELOG):
- 在线日志 → 归档日志的持续转换
- 实现完全恢复能力
- 支持热备份和 standby 数据库
这三者共同构成了Oracle数据库的事务记录和恢复机制的基础,确保了数据的一致性和持久性。