在RAC 和 RAC 之间的Data Guard 环境中,切换之后,修改SCAN 和 IP 地址之后, public 和 vip 可以连接,SCAN IP 无法连接,报如下错误:
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
Descriptor
在MOS上查了一下,说是有个bug,解决方法如下:
1.Remove <scan>:<port> definition (eg: <SCAN_NAME>:1521 in this example) from the tnsnames.ora under RDBMS ORACLE_HOME/network/admin or $TNS_ADMIN/network/admin directory
2. On any one of the RAC instance:
sqlplus / as sysdba
alter system set remote_listener='' scope=both sid='*';
alter system set remote_listener='<SCAN_NAME>:1521' scope=both sid='*';
alter system register;
3. To verify remote service registration:
lsnrctl service Listener_SCAN<x>
TNS-12514 Unable to Connect to RAC Database Using SCAN Name (Doc ID 1459768.1)
实际上我这个环境是另外一个因素导致的,默认情况下db_name 和 db_unique_name 是一样的,所以service_names 只有一个名称,但在RAC 到 RAC 的搭建中,备库的db_unique_name 不一样,导致默认情况下只有db_unique_name ,没有db_name。
这里的解决方法就是在service_names参数中同时添加db_name 和 db_unique_name ,这样所有的IP都能正常访问,包括SCAN IP。
SQL> show parameter services
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string cndba_st
SQL> alter system set service_names='cndba','cndba_st';
System altered.
[oracle@cndba2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-JUL-2022 02:49:40
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 17-JUL-2022 00:37:51
Uptime 0 days 2 hr. 11 min. 48 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/gridsoft/11.2.0/network/admin/listener.ora
Listener Log File /u01/gridbase/diag/tnslsnr/cndba2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=198.198.198.23)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=198.198.198.24)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "cndba" has 2 instance(s).
Instance "cndba2", status UNKNOWN, has 1 handler(s) for this service...
Instance "cndba2", status READY, has 1 handler(s) for this service...
Service "cndbaXDB" has 1 instance(s).
Instance "cndba2", status READY, has 1 handler(s) for this service...
Service "cndba_st" has 1 instance(s).
Instance "cndba2", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@cndba2 ~]$
版权声明:本文为博主原创文章,未经博主允许不得转载。