ORA-38786 Recovery area not enabled 怎么修复?Oracle恢复配置运维怎么处理?

文章导读
ORA-38786 错误表明数据库未启用快速恢复区(Flash Recovery Area)。修复方法是连接到数据库,使用 ALTER SYSTEM 命令设置 DB_RECOVERY_FILE_DEST 指定路径,并设置 DB_RECOVERY_FILE_DEST_SIZE 指定大小。确保路径存在且权限正确,设置完成后需确认参数生效。在 DataGuard 快照备库场景下,必须配置恢复区才能创建还
📋 目录
  1. ORA-38786: Recovery area is not enabled. ORACLE 报错 故障修复 远程处理
  2. 快照 DataGuard
  3. 快照 DATAGUARD
  4. 『ORACLE』DG 之 Snapshot Standby 功能 (11g)
  5. FAQ
A A

ORA-38786 错误表明数据库未启用快速恢复区(Flash Recovery Area)。修复方法是连接到数据库,使用 ALTER SYSTEM 命令设置 DB_RECOVERY_FILE_DEST 指定路径,并设置 DB_RECOVERY_FILE_DEST_SIZE 指定大小。确保路径存在且权限正确,设置完成后需确认参数生效。在 DataGuard 快照备库场景下,必须配置恢复区才能创建还原点。运维处理时需检查归档日志配置,确保空间充足,避免因此导致归档失败或备库转换错误。

ORA-38786: Recovery area is not enabled. ORACLE 报错 故障修复 远程处理

ORA-38786: Recovery area is not enabled. ORACLE 报错 故障修复 远程处理 1.打开一个 SQL 提示符,连接到您的数据库。2.设置恢复区路径:ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/ora_backup'SCOPE = BOTH; 3.指定可用空间:ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 100G SCOPE=BOTH; 4.让恢复区域可用:ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = 'DB_RECOVERY_FILE_DEST_SIZE = 100G'SCOPE=BOTH; 5.确认设置:SELECT NAME, VALUE FROM V$DATABASE_PROPERTY; 6. 提交更改:COMMIT; 香港美国云服务器首选树叶云,2H2G 首月 10 元开通。(消息于 2025 年 5 月 24 日发布)

快照 DataGuard

快照 DataGuard 一、设置 snapshot standby 关闭日志应用进程 MRP ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 关闭备数据库,启动到 MOUNT 阶段 SHUTDOWN IMMEDIATE; STARTUP NOMOUNT; 设置快速回复区域,但是注意这里并不需要 FLASHBACK DATABASE 支持,但是实际上应该还是 FLASHBACK DATABASE (Ensure that a fast recovery area has been configured. It is not necessary for flashback database to be enabled.) SQL> alter system set db_recovery_file_dest_size=30g; System altered. SQL> alter system set db_recovery_file_dest='/home/oradba/flash_area'; System altered. 如果不设置会报错 ERROR at line 1: ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_04/24/2015 10:30:47'. ORA-38786: Recovery area is not enabled. 执行转换 ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; 转换操作可能比较慢,Oracle 可能会为备库建立日志文件如果没有的话,这比较耗时 SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; Database altered. SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /oradba/archive Oldest online log sequence 1 Next log sequence to archive 1 Current log sequence 1 完成后完全是一个新的数据库 List of Database Incarnations DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time(撰于 2016 年 6 月 7 日)

快照 DATAGUARD

快照 DATAGUARD 一、设置 snapshot standby 关闭日志应用进程 MRP ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 关闭备数据库,启动到 MOUNT 阶段 SHUTDOWN IMMEDIATE; STARTUP NOMOUNT; 设置快速回复区域,但是注意这里并不需要 FLASHBACK DATABASE 支持,但是实际上应该还是 FLASHBACK DATABASE (Ensure that a fast recovery area has been configured. It is not necessary for flashback database to be enabled.) SQL> alter system set db_recovery_file_dest_size=30g; System altered. SQL> alter system set db_recovery_file_dest='/home/oradba/flash_area'; System altered. 如果不设置会报错 ERROR at line 1: ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_04/24/2015 10:30:47'. ORA-38786: Recovery area is not enabled. 执行转换 ALTER DATABASE CONVERT TOBY; 转换操作可能比较慢,ORACLE 可能会为备库建立日志文件如果没有的话,这比较耗时 SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; Database altered. SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /oradba/archive Oldest online log sequence 1 Next log sequence to archive 1 Current log sequence 1 完成后完全是一个新的数据库 List of Database Incarnations DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time ------- ------- -------- ---------------- --- ---------- ---------- 1 1 TEST 2151380215 PARENT 1 17-SEP-11 2 2 TEST 2151380215 PARENT 995548 18-JUL-14 3 3 TEST 2151380215 PARENT 142690086 10-NOV-14 4 4 TEST 2151380215 CURRENT 168265840 24-APR-15 最后就是打开数据库可以使用了 SQL> alter database open; Database altered. SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- SNAPSHOT STANDBY 注意:1、snapshot standby 产生自身的归档日志,但是 ALTER SYSTEM SWITCH LOGFILE 并不会马上归档,会等待 5 分钟归档 1 个日志 2、snapshot standby 确实会接受来自主库的日志,同时 STANDBY LOGFILE 也会接受来自主库的日志 SNAPSHOT STAND ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;(2015 年 4 月 24 日)

『ORACLE』DG 之 Snapshot Standby 功能 (11g)

『ORACLE』DG 之 Snapshot Standby 功能 (11g) DATABASE_ROLE OPEN_MODE 03:31:26'. SQL> show parameter recover NAME TYPE VALUE SQL> alter database convert to snapshot standby; SQL> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE SQL> show parameter user NAME TYPE VALUE user_dump_dest string /u01/app/oracle/diag/rdbms/enmo2/enmo2/trace 此时查看 alert 日志,会发现数据见了一个 guaranteed restore point,确保我们切回主备,可应用日志。 [oracle@enmo2 trace]$ tail -100f alert_enmo2.log Starting background process RVWR Created guaranteed restore point SNAPSHOT_STANDBY_REQUIRED_05/04/2017 04:09:35(搜索结果收录于 2017 年 5 月 17 日)

ORA-38786 Recovery area not enabled 怎么修复?Oracle恢复配置运维怎么处理?

FAQ

出现 ORA-38786 错误的主要原因是什么?

主要原因是尝试执行需要 Flash recovery area 启用的命令,但未设置 DB_RECOVERY_FILE_DEST 参数。

配置恢复区后是否需要重启数据库?

使用 ALTER SYSTEM SET 命令配合 SCOPE=BOTH 参数通常无需重启即可生效,但需确保目录权限正确。