【Oracle】查询视图主库正常,备库报错ORA-04023,居然是BUG!

一、问题描述

近期,客户反馈其Oracle Data Guard环境中出现一个异常现象:在主库中查询某视图可以正常返回结果,但在备库执行相同查询时却报错ORA-04023: 无法验证或授权对象。即使使用视图所有者的账号登录,问题依然存在。

二、初步排查

我们对可能的原因进行了逐一检查:

  1. 用户权限:确认当前用户为视图所有者,具备查询权限;

  2. 视图状态:检查发现视图状态为VALID,未失效;

  3. 主备同步状态:确认DG同步正常,无延迟或错误。

尽管以上检查均未发现异常,备库查询仍报错,表明问题可能与Oracle内部机制相关。

三、根本原因

通过查询My Oracle Support(MOS),我们发现该问题是Oracle 11.2.0.4版本ADG功能的一个已知BUG(Bug编号:23521523)。该BUG导致备库在解析视图时无法正确验证对象权限,从而抛出ORA-04023错误。

四、解决方案

有两种方法可解决此问题:

1、重新编译视图

ALTER VIEW 视图名 COMPILE;

2、刷新共享池

ALTER SYSTEM FLUSH SHARED_POOL;

在实际处理中,由于业务处于高峰期,我们选择了重新编译视图的方式,操作后视图查询立即恢复正常。

五、总结

在Oracle DG环境中,若发现主备库查询行为不一致,且常规排查无法定位问题,应考虑查询MOS确认是否为版本已知BUG。本文案例通过简单编译视图即快速解决问题,避免了系统重启或大规模操作的影响。

参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值