暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

重做日志(Redo Log)和归档日志(Archive Log)的核心区别

恩恩霸 2025-07-23
145

重做日志(Redo Log)和归档日志(Archive Log)的核心区别可以概括为一句话:

> **“重做日志是循环覆盖的在线日志,而归档日志是重做日志的历史备份。”**

下面分点说明:

---

### 1. **作用阶段不同**
| 类型 | 作用阶段 | 主要用途 |
|--------------|--------------------|------------------------------|
| **重做日志** | **数据库运行期间** | 实时记录事务变更,保障实例恢复(Instance Recovery) |
| **归档日志** | **日志切换后** | 长期保存历史变更,用于介质恢复(Media Recovery) |

---

### 2. **存储方式不同**
- **重做日志**:
- 以**日志组(Group)**形式存在(如Group1、Group2),**循环覆盖**。
- 例如:Group1写满后切换到Group2,Group2写满后覆盖Group1(若未开启归档模式,旧数据直接丢失)。
- **归档日志**:
- 当数据库处于**ARCHIVELOG模式**时,重做日志切换前会**生成归档副本**,永久保存(默认路径`$ORACLE_HOME/dbs/arch`)。
- **不会覆盖**,需手动或自动清理历史归档。

---

### 3. **恢复场景不同**
- **实例崩溃恢复(Instance Recovery)**:
仅需**在线重做日志**(未归档的当前日志组)即可恢复未写入数据文件的变更。
- **介质损坏恢复(Media Recovery)**:
需要**归档日志+重做日志**(如数据文件丢失、磁盘损坏时,通过备份+归档日志恢复到任意时间点)。

---

### 4. **是否必需**
- **重做日志**:**必须存在**,否则数据库无法启动(至少两组)。
- **归档日志**:**可选**,但若需**热备份**或**时间点恢复(PITR)**,必须开启归档模式。

---

### 5. **直观类比**
- **重做日志**:像飞机的**黑匣子**(实时记录,循环存储)。
- **归档日志**:像**黑匣子的历史存档**(长期保存,支持追溯)。

---

### 总结表
| **对比项** | **重做日志(Redo Log)** | **归档日志(Archive Log)** |
|------------------|--------------------------------|----------------------------------|
| **是否在线** | 是(始终活跃) | 否(由重做日志切换后生成) |
| **是否循环覆盖** | 是 | 否 |
| **是否必需** | 是 | 否(但生产环境强烈建议开启) |
| **恢复场景** | 实例崩溃恢复 | 介质损坏、时间点恢复 |
| **典型路径** | `*.log`(如redo01.log) | `arch_1_123.arc` |

通过以上对比,可以清晰区分两者在Oracle体系中的角色差异。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论