Oracle 19c安装完毕后,如何激活并设置闪回数据库及恢复区参数?

2026-04-30 14:112阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计887个文字,预计阅读时间需要4分钟。

Oracle 19c安装完毕后,如何激活并设置闪回数据库及恢复区参数?

相关专题

DB_RECOVERY_FILE_DEST 必须设,且必须是本地路径;否则 FLASHBACK DATABASE 会直接失败,报 ORA-38729: not enough flashback database log data to do flashback。这不是配置“可选”,而是硬性前提。

确认数据库已开归档模式

闪回数据库依赖归档日志和闪回日志协同工作,没归档就别谈闪回。

  • 执行 ARCHIVE LOG LIST,输出中必须含 Database log mode: Archive Mode
  • 如果显示 No Archive Mode,需停库:先 SHUTDOWN IMMEDIATE,再 STARTUP MOUNT,然后 ALTER DATABASE ARCHIVELOG,最后 ALTER DATABASE OPEN
  • 注意:仅改参数 LOG_ARCHIVE_START=TRUE 不生效,Oracle 10g+ 已废弃该参数,必须真归档

设置 DB_RECOVERY_FILE_DEST 和大小

这个路径就是闪回恢复区(FRA),所有归档日志、RMAN备份、闪回日志都默认往这里写——不能是 NFS、不能是远程挂载点,必须是数据库服务器本地文件系统或 ASM 磁盘组。

  • 先设大小(建议不低于数据库总数据量的 30%,OLTP 系统尤其要留足):ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 20G SCOPE=BOTH
  • 再设路径(Linux 示例):ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area' SCOPE=BOTH
  • 路径设完必须重启才生效:SHUTDOWN IMMEDIATESTARTUPSCOPE=BOTH 不代表热生效
  • 验证:SHOW PARAMETER db_recovery_file_dest,确保值非空且路径可写(检查属主、权限、磁盘空间)

强制归档日志进 FRA,避免路径冲突

LOG_ARCHIVE_DEST_1 如果指向了非 FRA 路径,RMAN 备份时可能找不到归档,还原时报 RMAN-06023;更糟的是,它会覆盖 FRA 的自动归档行为。

  • 清空原归档目标:ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='' SCOPE=BOTH
  • 明确指定走 FRA:ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' SCOPE=BOTH
  • 确认归档格式含 %r(resetlogs ID),防止跨 incarnation 冲突:SHOW PARAMETER log_archive_format,应类似 %t_%s_%r.dbf
  • 立即触发一次归档:ALTER SYSTEM ARCHIVE CURRENT LOG,再查 SELECT NAME FROM V$ARCHIVED_LOG WHERE ROWNUM ,确认路径落在 <code>DB_RECOVERY_FILE_DEST

启用 FLASHBACK DATABASE 并验证

前三个步骤做完,才能安全启闪回;否则 ALTER DATABASE FLASHBACK ON 虽不报错,但后续闪回操作必然失败。

  • 停库到 MOUNT:SHUTDOWN IMMEDIATESTARTUP MOUNT
  • 启用:ALTER DATABASE FLASHBACK ON
  • 打开库:ALTER DATABASE OPEN
  • 验证:SELECT FLASHBACK_ON FROM V$DATABASE,返回必须是 YES
  • 额外提醒:_flashback_max_log_size_flashback_log_min_size 是隐式参数,别手动调;FRA 空间不足时,闪回日志会被自动清理,跟 RMAN 保留策略无关
FRA 空间是否够用,不是看初始配了多少,而是看归档速率 + 闪回保留窗口 + RMAN 备份频率三者叠加后的实际占用。很多故障发生在「以为设了 20G 就够,结果一天归档涨了 15G,闪回日志被挤掉」——监控 V$RECOVERY_FILE_DESTSPACE_USED/SPACE_LIMIT 比值,比任何配置都重要。
标签:Oracle

本文共计887个文字,预计阅读时间需要4分钟。

Oracle 19c安装完毕后,如何激活并设置闪回数据库及恢复区参数?

相关专题

DB_RECOVERY_FILE_DEST 必须设,且必须是本地路径;否则 FLASHBACK DATABASE 会直接失败,报 ORA-38729: not enough flashback database log data to do flashback。这不是配置“可选”,而是硬性前提。

确认数据库已开归档模式

闪回数据库依赖归档日志和闪回日志协同工作,没归档就别谈闪回。

  • 执行 ARCHIVE LOG LIST,输出中必须含 Database log mode: Archive Mode
  • 如果显示 No Archive Mode,需停库:先 SHUTDOWN IMMEDIATE,再 STARTUP MOUNT,然后 ALTER DATABASE ARCHIVELOG,最后 ALTER DATABASE OPEN
  • 注意:仅改参数 LOG_ARCHIVE_START=TRUE 不生效,Oracle 10g+ 已废弃该参数,必须真归档

设置 DB_RECOVERY_FILE_DEST 和大小

这个路径就是闪回恢复区(FRA),所有归档日志、RMAN备份、闪回日志都默认往这里写——不能是 NFS、不能是远程挂载点,必须是数据库服务器本地文件系统或 ASM 磁盘组。

  • 先设大小(建议不低于数据库总数据量的 30%,OLTP 系统尤其要留足):ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 20G SCOPE=BOTH
  • 再设路径(Linux 示例):ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area' SCOPE=BOTH
  • 路径设完必须重启才生效:SHUTDOWN IMMEDIATESTARTUPSCOPE=BOTH 不代表热生效
  • 验证:SHOW PARAMETER db_recovery_file_dest,确保值非空且路径可写(检查属主、权限、磁盘空间)

强制归档日志进 FRA,避免路径冲突

LOG_ARCHIVE_DEST_1 如果指向了非 FRA 路径,RMAN 备份时可能找不到归档,还原时报 RMAN-06023;更糟的是,它会覆盖 FRA 的自动归档行为。

  • 清空原归档目标:ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='' SCOPE=BOTH
  • 明确指定走 FRA:ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' SCOPE=BOTH
  • 确认归档格式含 %r(resetlogs ID),防止跨 incarnation 冲突:SHOW PARAMETER log_archive_format,应类似 %t_%s_%r.dbf
  • 立即触发一次归档:ALTER SYSTEM ARCHIVE CURRENT LOG,再查 SELECT NAME FROM V$ARCHIVED_LOG WHERE ROWNUM ,确认路径落在 <code>DB_RECOVERY_FILE_DEST

启用 FLASHBACK DATABASE 并验证

前三个步骤做完,才能安全启闪回;否则 ALTER DATABASE FLASHBACK ON 虽不报错,但后续闪回操作必然失败。

  • 停库到 MOUNT:SHUTDOWN IMMEDIATESTARTUP MOUNT
  • 启用:ALTER DATABASE FLASHBACK ON
  • 打开库:ALTER DATABASE OPEN
  • 验证:SELECT FLASHBACK_ON FROM V$DATABASE,返回必须是 YES
  • 额外提醒:_flashback_max_log_size_flashback_log_min_size 是隐式参数,别手动调;FRA 空间不足时,闪回日志会被自动清理,跟 RMAN 保留策略无关
FRA 空间是否够用,不是看初始配了多少,而是看归档速率 + 闪回保留窗口 + RMAN 备份频率三者叠加后的实际占用。很多故障发生在「以为设了 20G 就够,结果一天归档涨了 15G,闪回日志被挤掉」——监控 V$RECOVERY_FILE_DESTSPACE_USED/SPACE_LIMIT 比值,比任何配置都重要。
标签:Oracle