Oracle 19c安装完毕后,如何激活并设置闪回数据库及恢复区参数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计887个文字,预计阅读时间需要4分钟。
相关专题
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 IMMEDIATE→STARTUP,SCOPE=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 IMMEDIATE→STARTUP 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 保留策略无关
V$RECOVERY_FILE_DEST 的 SPACE_USED/SPACE_LIMIT 比值,比任何配置都重要。本文共计887个文字,预计阅读时间需要4分钟。
相关专题
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 IMMEDIATE→STARTUP,SCOPE=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 IMMEDIATE→STARTUP 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 保留策略无关
V$RECOVERY_FILE_DEST 的 SPACE_USED/SPACE_LIMIT 比值,比任何配置都重要。
