Oracle 数据库之归档日志

1、归档日志基本概念

Oracle 重做日志(Redo Log)是数据库的核心机制,记录了所有数据变更操作。当数据库处于归档模式(ARCHIVELOG Mode)时,Oracle 在切换重做日志组之前,会将已写满的重做日志文件复制到指定的归档目标位置,生成的文件就是归档日志(Archive Log / Redo Log Archive)。

归档日志是数据库恢复的基石。没有归档日志,数据库只能恢复到最近一次备份的时间点;有了归档日志,可以将数据库恢复到任意时间点(Point-in-Time Recovery),实现零数据丢失。

2、归档模式 vs 非归档模式

|----------------|--------------------------------------|-------------------------|
| 特性 | 归档模式(ARCHIVELOG) | 非归档模式(NOARCHIVELOG) |
| 日志保留 | 已写满的重做日志被归档后才可覆盖 | 已写满的重做日志直接被覆盖 |
| 在线备份 | 支持热备份(ALTER TABLESPACE BEGIN BACKUP) | 仅支持冷备份(SHUTDOWN 后复制) |
| 时间点恢复 | 支持任意时间点恢复 | 仅支持恢复到备份时刻 |
| Data Guard | 支持 | 不支持 |
| 闪回数据库 | 支持 | 不支持 |
| RMAN 增量备份 | 支持 | 部分支持(无归档日志无法完全恢复) |
| 适用场景 | 生产环境(必须) | 开发/测试环境 |

3、归档日志命名与格式

归档日志文件名由 LOG_ARCHIVE_FORMAT 参数控制,支持以下占位符:

|---------|------------------------|
| 占位符 | 含义 |
| %t | 线程号(Thread Number) |
| %s | 日志序列号(Sequence Number) |
| %r | 重置日志 ID(Resetlogs ID) |
| %d | 数据库 ID(DBID) |
| %S | 日志序列号(固定宽度,不足补零) |
| %T | 年月日(YYYYMMDD) |

查看当前归档日志格式:

SELECT name, value FROM v$parameter WHERE name = 'log_archive_format';

设置归档日志格式(需重启生效):

ALTER SYSTEM SET log_archive_format = 'arch_%t_%s_%r.arc' SCOPE=SPFILE;

实例:归档日志命名格式不当导致文件覆盖

**S --- Situation(场景):**某企业 Oracle 数据库使用默认归档格式 arch_%s.arc(仅含序列号)。在一次 DBID 相同的数据库克隆操作后,两个库的归档日志写入同一目录,因序列号冲突导致归档日志相互覆盖,主库归档日志丢失。

**T --- Task(任务):**修改归档日志命名格式,确保唯一性,并建立归档目录隔离机制。

A --- Action(行动):

1、修改归档日志格式,加入线程号和重置日志 ID:

ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=SPFILE;

2、为不同数据库配置独立的归档目标目录;

3、建立归档目录命名规范:/archive/<DB_UNIQUE_NAME>/

4、重启数据库使格式生效。

**R --- Result(结果):**归档日志文件名包含 %t(线程号)和 %r(Resetlogs ID),彻底避免了文件覆盖问题。后续克隆操作不再影响主库归档日志安全。

4、归档日志关键视图

**V$ARCHIVED_LOG:**显示所有已归档的日志信息,包括序列号、SCN、大小、归档目标等

**V$ARCHIVE_DEST:**显示所有归档目标位置及其状态

**V$ARCHIVE_DEST_STATUS:**显示归档目标的详细状态(传输延迟、错误信息等)

**V$LOG_HISTORY:**显示日志切换历史记录

**V$LOG:**显示当前在线重做日志组状态

**V$LOGFILE:**显示重做日志文件物理位置

**V$FLASH_RECOVERY_AREA_USAGE:**显示 FRA 空间使用情况(含归档日志)

**DBA_HIST_ARCHIVED_LOG:**AWR 中的归档日志历史(自动负载信息库)

相关推荐
倔强的石头_2 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab3 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence3 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神3 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据4 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡4 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧4 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon4 天前
SQL学习指南——视图
数据库·sql
活宝小娜4 天前
mysql详细安装教程
数据库·mysql·adb