配置静态监听解决ORA-12514错误的案例(三)

2014-11-24 12:27:21 · 作者: · 浏览: 2
ce(s). Instance "prd", status UNKNOWN, has 1 handler(s) for this service... Service "std" has 1 instance(s). Instance "prd", status READY, has 1 handler(s) for this service... Service "std_XPT" has 1 instance(s). Instance "prd", status READY, has 1 handler(s) for this service... The command completed successfully
可以看到,此时备库也多了一个UNKNOWN的,和实例名prd对应的服务prd
--再次查看主库远程归档路径状态 SQL> select dest_id,status,error from v$archive_dest_status;
DEST_ID STATUS ERROR ---------- --------- -------------------- 1 VALID 2 VALID 3 INACTIVE 4 INACTIVE 5 INACTIVE 6 INACTIVE 7 INACTIVE 8 INACTIVE 9 INACTIVE 10 INACTIVE
原来dest_id=2的那个远程归档路径的ORA-12514的问题解决了,此时归档日志就可以通过网路远程传输到备库相应的归档路径中了,再执行redo apply也不会有任何问题了。
总结:
这个案例是由于主备库都采用了同一个实例名产生的问题,当我们只配置一个默认的动态监听,会发现主库无法监听到远程备库的相应服务,通过静态监听手动添加上与实例名对应的服务,才能解决这个问题。使用静态监听的另一个好处是,当Oracle 数据库实例还没有启动的时候,就会先把对应的服务和实例名,通过静态配置的监听文件给启动起来,而不是等启动实例后由pmon进程再去启动,这样速度更快。不用再等待若干秒,我们的客户端就可以通过静态监听立即脸上数据库服务器了,也就是说,可以不依赖服务器进程,完成监听的工作。