客户环境是windows 11.2.04 adg同步到linux下11.2.0.4.
搭建好同步之后正常运行了两天后出现目标端延时.经过检查发现是源端无法发送日志,报错ORA-16191:主日志传送客户机没有登录到备用数据库:
这个错误遇到过很多次了,基本都是密码文件不对,可能需要重建密码文件等等,以前也遇到过一次奇怪的ORA-16191,详细见博客:
https://blog.csdn.net/su377486/article/details/96988184
这次的情况和以前的都不一样,查看alert日志,这里还是提示了要么是密码文件不对,要么就是参数设置不对,但是都重新检查设置过确认没有问题.
但是我们注意到产生了trace文件,需要到trace文件中去看看是否有新的发现:
确实我们发现了一个新的关键的错误
ORA-38802:edition does not exist.
这个错误就很明显了,这个是版本不存在,就是说两个库的补丁不一致.
检查了发现windows中安装了补丁2015年的第一季度的patch bunddle,但是linux没有打任何补丁.
又发现一个问题,windows下的补丁和linux的补丁是不一样的,根据windows下的patch号进行查找根本没有linux版本.
这里尝试给linux下oracle打上了2019年的psu,然后重新进行应用发现依然报错.应该还是由于某个小的补丁不一致导致的.
最后想到,这里的目标端一直的read only打开然后应用的,由于补丁的不一致导致无法发送日志.那么其实只要将数据库打开到mount状态就可以了.
尝试将目标端打开到mount下,然后开启实时应用,恢复正常.