最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Oracle Active Data Guard如何开启实时查询
时间:2026-08-17 10:17:49 编辑:袖梨 来源:一聚教程网
备库显示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或压根没这行,就是日志流中断了
确认 compatible 参数是否达标
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 - 注意:此操作不可逆,且要求所有数据文件已完成 11g 兼容格式重写(通常升级后执行过 DML 或
DBMS_STATS即可满足)
启动实时日志应用的三个前提缺一不可
很多人只盯着 SQL 命令,却忽略这三个底层依赖,导致命令执行成功但实际没生效:
- 备库必须处于
MOUNT状态才能执行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;如果已经OPEN READ ONLY,得先SHUTDOWN IMMEDIATE再STARTUP MOUNT - 主库归档目标必须启用 CURRENT LOGFILE 传输,例如:
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 权限也没用。
相关文章
- ACDsee如何使用复制功能 08-18
- ae如何制作擦除文本动画效果 08-18
- Canva AI写网页功能区插画提示词如何加入使用场景 08-18
- 手机网络收音机哪个省流量 08-18
- 蝉妈妈如何更换头像 08-18
- 即梦AI如何做出烟雾缭绕效果 08-18