备库显示READ ONLY而非READ ONLY WITH APPLY,说明ADG未真正启用,根本原因是日志应用中断:MRP0进程未处于APPLYING_LOG状态、SRL缺失、compatible参数低于11.1.0.0.0、归档传输配置异常或备库未处于MOUNT状态即尝试启动实时恢复。
备库显示 READ ONLY 而不是 READ ONLY WITH APPLY,说明实时查询根本没启用——这不是权限或 SQL 写法问题,而是日志应用链路卡在了底层状态。
先确认是不是真开了 ADG,别被“已启动”误导。最直接的方式是查两个视图:
SELECT OPEN_MODE, DATABASE_ROLE, PROTECTION_MODE FROM v$database; —— 正常 ADG 必须返回 READ ONLY WITH APPLY;若仍是 READ ONLY,说明日志没在边应用边开放查询SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK# FROM v$managed_standby; —— 重点看 MRP0 进程是否存在、状态是否为 APPLYING_LOG;若为 WAIT_FOR_LOG 或压根没这行,就是日志流中断了Oracle 11g+ ADG 的硬性门槛:compatible 必须 ≥ '11.1.0.0.0'。哪怕你装的是 11.2.0.4,只要这个参数还卡在 10.2.0.0.0(常见于升级后未手动调整),ADG 就会静默退化成只读备库,ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE 也会失败或无效果。
SHOW PARAMETER compatible
ALTER SYSTEM SET compatible='11.1.0.0.0' SCOPE=SPFILE;,然后 SHUTDOWN IMMEDIATE → STARTUP MOUNT → ALTER DATABASE OPEN
DBMS_STATS 即可满足)很多人只盯着 SQL 命令,却忽略这三个底层依赖,导致命令执行成功但实际没生效:
MOUNT 状态才能执行 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;如果已经 OPEN READ ONLY,得先 SHUTDOWN IMMEDIATE 再 STARTUP MOUNT
LOG_ARCHIVE_DEST_2='SERVICE=standby_db ASYNC VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=standby_db';SYNC 或 ASYNC 都可以,但不能是 DEFER 或没配 VALID_FOR
STANDBY REDO LOGS(SRL),且组数、大小 ≥ 主库 ONLINE REDO LOGS;缺少 SRL 会导致 USING CURRENT LOGFILE 实际降级为普通归档应用,无法实现实时光看命令执行成功没用,得看状态是否持续稳定:
v$archive_dest_status:SELECT DEST_NAME, STATUS, RECOVERY_MODE FROM v$archive_dest_status WHERE DEST_ID —— 备库上 RECOVERY_MODE 应为 MANAGED REAL TIME APPLY,不是 MANAGED 或 MANAGED WITH QUERY
MRP0 进程不能间歇性消失或频繁切换为 WAIT_FOR_LOG;一旦出现,立刻查 v$archive_dest_status.ERROR 列,常见错误如 ORA-16057(服务名解析失败)、ORA-12514(监听未注册)/etc/sysconfig/network 中 HOSTNAME 配置错误曾多次引发监听注册失败真正麻烦的不是命令怎么敲,而是 compatible、MOUNT 状态、SRL 这三样东西是否同时就位——漏掉任何一个,备库就永远卡在 READ ONLY,你再怎么改 SQL 权限也没用。
小米路由器3G怎么恢复出厂设置(小米路由器3G该如何恢复出厂设置)
小米路由器3g和4a千兆版哪个好(小米路由器3g和4a千兆版对比区别)
Sensor Tower:ChatGPT全球份额跌破50%,Gemini与Claude加速追赶
OpenAI提速狂飙16倍!GPT-5.6多智能体V2上线,741轮怪物对话1秒打开
“十五五”时期 煤矿危险繁重岗位将由机器人替代
waytouniverse/ppt-generator:从 Markdown 大纲生成风格统一的 PPT 图片