当前位置: 首页 > news >正文

ORACLE学习笔记总结(数据库归档模式的配置)

Oracle数据库归档模式配置详解

归档模式(ARCHIVELOG)是Oracle数据库的核心配置,开启后才能进行热备份和完全恢复,是生产环境的强制要求。

简单点说归档和非归档模式是LGWR进程给写入时Online redo log files数据覆盖还是备份。

归档模式好处:备份数据库时,可以备份原数据库和改变的部分节省空间。

备份Redo history文件:Archived log files


一、核心概念

归档 vs 非归档模式对比

特性ARCHIVELOG(归档)NOARCHIVELOG(非归档)
联机日志重用先归档,后重用直接覆盖
数据恢复能力完全恢复(零丢失)只能到上次冷备份
备份方式热备份(数据库在线)只能冷备份(停机)
生产环境强制要求仅限测试/开发
空间占用需要归档日志空间无需额外空间

关键结论生产库必须开启ARCHIVELOG模式


二、配置前准备工作

1. 确认当前模式

-- 查看当前日志模式 SELECT LOG_MODE FROM V$DATABASE; -- 或详细查询 SELECT NAME, LOG_MODE, OPEN_MODE FROM V$DATABASE; -- 结果应为:LOG_MODE = NOARCHIVELOG

2. 规划归档日志存储路径

# 创建归档目录(建议独立磁盘/文件系统) mkdir -p /u01/arch/orcl chown -R oracle:oinstall /u01/arch/orcl chmod -R 750 /u01/arch/orcl # 估算空间(示例:每天产生50GB归档) # 保留7天 → 至少需要 50GB * 7 = 350GB

3. 配置归档路径参数

-- 方法A:使用文件系统路径(推荐) ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl' SCOPE=SPFILE; -- 方法B:使用快速恢复区(Oracle Managed) ALTER SYSTEM SET db_recovery_file_dest='/u01/fast_recovery_area' SCOPE=SPFILE; ALTER SYSTEM SET db_recovery_file_dest_size=500G SCOPE=SPFILE; -- 方法C:多路复用(推荐生产环境) ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl' SCOPE=SPFILE; ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u02/arch/orcl' SCOPE=SPFILE;

参数详解

  • log_archive_dest_1:归档目标1(最多31个,1-10为传统,11-31为高级)

  • LOCATION:本地文件系统路径

  • db_recovery_file_dest:快速恢复区(自动管理归档、备份等)


三、配置归档模式(核心步骤)

步骤1:关闭数据库

SQL> SHUTDOWN IMMEDIATE; -- 等待所有会话断开,干净关闭

步骤2:启动到MOUNT状态

SQL> STARTUP MOUNT; -- 仅启动实例,加载控制文件,不打开数据文件

步骤3:开启归档模式

SQL> ALTER DATABASE ARCHIVELOG; -- 执行时间:< 1秒

步骤4:打开数据库

SQL> ALTER DATABASE OPEN; -- 正常打开数据库

步骤5:验证配置

-- 验证1:查看日志模式 SELECT LOG_MODE FROM V$DATABASE; -- 结果:ARCHIVELOG -- 验证2:查看归档进程 SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'ARC%'; -- 结果:ARCn进程存在(自动归档进程) -- 验证3:查看归档目的地 ARCHIVE LOG LIST; -- 输出: Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/arch/orcl Oldest online log sequence 100 Next log sequence to archive 102 Current log sequence 102 -- 验证4:强制日志切换,检查归档是否生成 ALTER SYSTEM SWITCH LOGFILE; -- 查看归档日志文件 !ls -lh /u01/arch/orcl/*.arc

四、完整配置示例(推荐脚本)

#!/bin/bash # Oracle归档模式配置脚本 # 适用于19c/21c ORACLE_SID=orcl export ORACLE_SID sqlplus / as sysdba <<EOF -- 1. 检查当前模式 SET PAGESIZE 100 SELECT NAME, LOG_MODE, OPEN_MODE FROM V$DATABASE; -- 2. 配置归档路径(多路复用) ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' SCOPE=SPFILE; ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u02/arch/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' SCOPE=SPFILE; -- 3. 配置归档文件名格式 ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=SPFILE; -- 4. 启用自动归档 ALTER SYSTEM SET log_archive_start=TRUE SCOPE=SPFILE; -- 5. 重启到MOUNT SHUTDOWN IMMEDIATE; STARTUP MOUNT; -- 6. 开启归档 ALTER DATABASE ARCHIVELOG; -- 7. 打开数据库 ALTER DATABASE OPEN; -- 8. 验证 ARCHIVE LOG LIST; SELECT LOG_MODE FROM V$DATABASE; -- 9. 模拟日志切换 ALTER SYSTEM SWITCH LOGFILE; -- 10. 检查归档文件 !ls -lh /u01/arch/orcl/ | tail -5 EXIT; EOF

五、高级配置选项

1. 启用多个归档目标(冗余)

-- 主归档路径 ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl' SCOPE=SPFILE; -- 备用归档路径(主路径失败时使用) ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u02/arch/orcl' SCOPE=SPFILE; ALTER SYSTEM SET log_archive_dest_state_2=ENABLE SCOPE=BOTH; -- 强制归档到所有目的地 ALTER SYSTEM SET log_archive_min_succeed_dest=2 SCOPE=SPFILE;

2. 归档到远程位置(备用库)

-- 归档到远程备用库(Data Guard) ALTER SYSTEM SET log_archive_dest_2='SERVICE=standby_db LGWR SYNC AFFIRM' SCOPE=SPFILE; -- 配置延迟应用(防误操作) ALTER SYSTEM SET log_archive_dest_2='SERVICE=standby_db LGWR ASYNC DELAY=5' SCOPE=SPFILE;

3. Oracle Managed Files(简化管理)

-- 使用快速恢复区(推荐新手) ALTER SYSTEM SET db_recovery_file_dest='/u01/fast_recovery_area' SCOPE=SPFILE; ALTER SYSTEM SET db_recovery_file_dest_size=500G SCOPE=SPFILE; -- 此时归档日志自动存储在快速恢复区 -- 无需配置log_archive_dest(使用DB_RECOVERY_FILE_DEST) -- 查看使用情况 SELECT * FROM V$RECOVERY_FILE_DEST;

六、最佳实践与注意事项

✅ 必须做到

  1. 归档路径独立:不要使用SYSTEM表空间所在磁盘

  2. 多路复用:生产环境至少2个归档目的地

  3. 空间监控:设置85%和95%告警阈值

  4. 定期备份:归档日志必须每日备份,备份后删除

  5. 测试验证:开启后务必执行ALTER SYSTEM SWITCH LOGFILE测试

✅ 推荐做法

-- 1. 启用归档日志压缩(12c+) ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl COMPRESSION=ENABLE' SCOPE=SPFILE; -- 2. 限制单个归档大小(防止撑爆文件系统) ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl QUOTA_SIZE=400G' SCOPE=SPFILE; -- 3. 配置归档日志保留策略 RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DEVICE TYPE DISK; -- 4. 自动化清理脚本 #!/bin/bash find /u01/arch/orcl -name "*.arc" -mtime +7 -delete

❌ 禁止操作

  • 归档路径在SYSTEM表空间:导致空间连锁反应

  • 不配置空间限制:归档日志无限增长

  • 从不备份归档:介质故障无法恢复

  • 忽略归档进程状态:ARCn进程挂起不处理


七、常见问题与解决

问题1:无法开启归档(未设置归档路径)

-- 错误:ORA-00265: instance recovery required, cannot set ARCHIVELOG mode -- 解决:先配置归档路径再开启 ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch/orcl' SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG;

问题2:归档空间满,数据库挂起

# 现象:所有DML被挂起,等待归档 # 错误:ORA-00257: archiver error. Connect internal only, until freed # 紧急处理: # 1. 快速清理旧归档(保留最近1天) find /u01/arch/orcl -name "*.arc" -mtime +1 -delete # 2. 临时扩展空间(如果可能) ALTER SYSTEM SET db_recovery_file_dest_size=600G SCOPE=BOTH; # 3. 启动归档进程 ALTER SYSTEM ARCHIVE LOG START;

问题3:归档日志损坏

-- 归档日志物理损坏,导致恢复失败 -- RMAN验证:RMAN> VALIDATE ARCHIVELOG ALL; -- 解决:删除损坏归档,从备份恢复 RMAN> CROSSCHECK ARCHIVELOG ALL; RMAN> DELETE EXPIRED ARCHIVELOG ALL; -- 如果备份不可用,只能执行不完全恢复 RMAN> RECOVER DATABASE UNTIL SEQUENCE 100; SQL> ALTER DATABASE OPEN RESETLOGS;

八、核心检查脚本

-- 一键归档状态检查 SET PAGESIZE 100 SELECT db.NAME, db.LOG_MODE, db.OPEN_MODE, ad.DEST_NAME, ad.STATUS, ad.DESTINATION FROM V$DATABASE db CROSS JOIN V$ARCHIVE_DEST ad WHERE ad.DEST_ID <= 2; -- 归档日志生成速率 SELECT TO_CHAR(COMPLETION_TIME, 'YYYY-MM-DD HH24') AS HOUR, ROUND(SUM(BLOCKS*BLOCK_SIZE)/1024/1024/1024, 2) AS "ARCHIVE_GB" FROM V$ARCHIVED_LOG WHERE COMPLETION_TIME > SYSDATE - 7 GROUP BY TO_CHAR(COMPLETION_TIME, 'YYYY-MM-DD HH24') ORDER BY 1 DESC;

九、总结

配置归档模式的标准步骤

1. 规划路径和空间 2. 关闭数据库(SHUTDOWN IMMEDIATE) 3. 启动到MOUNT(STARTUP MOUNT) 4. 开启归档(ALTER DATABASE ARCHIVELOG) 5. 打开数据库(ALTER DATABASE OPEN) 6. 验证(ARCHIVE LOG LIST) 7. 配置备份策略(RMAN)

黄金法则

  • 生产环境必须开启ARCHIVELOG

  • 归档路径独立且有冗余

  • 每日备份归档日志并清理

  • 监控空间使用率,设置告警

一句话总结:归档模式是Oracle数据安全的基石,没有归档就没有数据恢复能力。

http://www.jsqmd.com/news/101372/

相关文章:

  • Applite:告别命令行,用图形界面轻松管理macOS软件包
  • 3步搞定老旧Mac升级:OpenCore Legacy Patcher USB启动盘制作全攻略
  • ORACLE学习笔记总结(数据库常见错误及应对措施)
  • 小白进阶 “挖洞大神”:SRC 漏洞挖掘完整攻略(附工具包 + 系统学习路径)
  • tensorflow 零基础吃透:TensorFlow 张量切片与数据插入(附目标检测 / NLP 实战场景)
  • WebPlotDigitizer:科研图表数据提取的终极完整指南
  • ThinkPad双风扇终极静音指南:TPFanCtrl2完整配置与优化
  • 微信网页版终极解决方案:wechat-need-web插件一键突破访问限制
  • C++ HTTP/2架构深度解析:从连接瓶颈到性能翻倍
  • [特殊字符]️ 羽毛球检测数据集介绍-1686张图片 运动赛事分析 智能健身设备 自动裁判系统 体育视频内容分析 机器人运动训练
  • Qwen3-32B实测:单卡A100跑出180+吞吐
  • BetterNCM终极个性化定制:从零打造专属网易云音乐深度改造方案
  • 车辆轮胎寿命预测检测数据集介绍-410张图片 车辆安全检测 车队管理和维护 智能汽车与ADAS系统 轮胎生产质量控制 道路交通监管 二手车评估与交易
  • Wallpaper_Engine终极指南:快速免费获取创意工坊壁纸的完整方案
  • 显卡驱动彻底清理终极指南:高效解决驱动冲突问题
  • ComfyUI-Manager完整教程:5步掌握AI绘画插件高效管理
  • 写论文软件挑到崩溃?听劝!别试了!虎贲等考 AI 已经把 “毕业级论文” 标准答案写好了
  • LobeChat能否支持量子计算模拟?前沿科技教育助手开发
  • 论文写作word插入公式显示灰色解决办法
  • 无人机赋能的双上行链路协同非正交多址接入中的自适应解码机制附Matlab代码
  • 实战避坑指南:小爱音箱变身智能AI助手的性能优化全攻略
  • LaTeX公式到Word转换工具:突破性的3步智能转换方案
  • AI 论文辅助对决!虎贲等考 AI:全流程赋能,稳坐毕业论文 “最强辅助” 宝座
  • 探索ChinaAdminDivisonSHP:地理数据背后的数字艺术
  • word论文插入mathtype公式方法
  • Day29~删除一个字符串中出现次数最少的字符(小写字母)
  • 大麻叶病害缺陷检测数据集介绍-198张图片 智能农业监测 精准病害诊断 作物健康管理 农业科研分析 智能植保机器人 农业教育培训
  • 【OpenCV】Python图像处理几何变换之翻转
  • 无人机视觉定位研究附Matlab代码
  • 破局路侧感知困境:毫米波雷达+相机融合算法如何重塑智能交通