备库重新编译导致的ora-16000 :database open for read-only access

来源:互联网 发布:centos 源码安装php 编辑:程序博客网 时间:2024/04/28 14:45

    今天,一个开发来找我,说是备库的一个用户执行存储过程报错(我们的备库是ora11.2.0.3的active standby)。错误信息如下:

    ora-00604:error occurred  at recursive SQL level 1

    ora-16000 :database open for read-only access

    看到这个错误,作为一个ora菜鸟,第一感觉以为是该存储过程有更改数据的操作,而备库是只读的。随后,查看了该存储过程,然而发现该存储过程涉及到的全部都是select语句。这时开发告诉我,应用连接的用户是b,而存储过程是a的,并且在周四的时候b用户执行是没有问题的,在周五执行的时候就楚翔了上述问题,在核对了权限问题后,依然没有解决问题。

    后来,登陆到主库,突然间发现存储过程是无效的,问开发,原来是周四晚上,更改了该存储过程导致其无效。在备库上执行的时候,需要重新编译,而备库是只读的,无法重新编译,导致出现了以上的错误。ora菜鸟---伤不起啊!~~~~


原创粉丝点击