SQL
-- 1. 临时改为手动管理模式 (关键步骤)
ALTER SYSTEM SET standby_file_management='MANUAL';
-- 2. 执行重命名操作更新控制文件
ALTER DATABASE RENAME FILE '/data/orcl/z19cisrec.269.1029882661' TO '/u01/app/oracle/oradata/z19cisrec.269.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/z19eprlob.270.1029882661' TO '/u01/app/oracle/oradata/z19eprlob.270.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/zltoolstbs.307.1029884303' TO '/u01/app/oracle/oradata/zltoolstbs.307.1029884303';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.271.1029882661' TO '/u01/app/oracle/oradata/z19indexhis.271.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/zlmsgdata.330.1029884463' TO '/u01/app/oracle/oradata/zlmsgdata.330.1029884463';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.281.1029883123' TO '/u01/app/oracle/oradata/z19indexhis.281.1029883123';
ALTER DATABASE RENAME FILE '/data/orcl/z19indexhis.279.1029883051' TO '/u01/app/oracle/oradata/z19indexhis.279.1029883051';
ALTER DATABASE RENAME FILE '/data/orcl/z19baseitem.282.1029883123' TO '/u01/app/oracle/oradata/z19baseitem.282.1029883123';
ALTER DATABASE RENAME FILE '/data/orcl/z19baseitem.268.1029882661' TO '/u01/app/oracle/oradata/z19baseitem.268.1029882661';
ALTER DATABASE RENAME FILE '/data/orcl/z19cisrec.276.1029883041' TO '/u01/app/oracle/oradata/z19cisrec.276.1029883041';
-- 3. 恢复自动管理模式 (极其重要,遗忘会导致后续主备同步断开)
ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=BOTH;
3.5 重新打开数据库并开启实时同步
SQL
-- 以只读模式打开数据库 (恢复 ADG 状态)
ALTER DATABASE OPEN;
-- 开启实时日志应用 (Real-Time Apply)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
4. 验证与空间清理
4.1 状态验证
在数据库中执行以下查询,确认 MRP0 进程处于 APPLYING_LOG 状态,说明主备实时同步已恢复正常:
SQL
SELECT process, status, sequence# FROM v$managed_standby;
(也可配合 tail -f alert_SID.log 观察告警日志,确认 Managed Standby Recovery starting Real Time Apply 且无报错信息。)