ORA-12545 error is unable to connect to the target host IP address, or the object does not exist, the solution is to force the binding of the IP below we look at the two solutions.
Oracle11GR2 RAC cannot connect to the database using scan IP, error ORA-12545: connection failed because the target host or object does not exist
Symptom:
The SQL plus tool on the windows client cannot be connected using the scan IP address. The following error is returned:
C: Windowssystem32> sqlplus song/123456@10.10.23.3: 11521/orcl
SQL * Plus: Release 11.2.0.1.0 Production on Thu May 17 12:35:28 2012
Copyright (c) 1982,201 0, Oracle. All rights reserved.
ERROR:
ORA-12545: the connection failed because the target host or object does not exist
1. Check the status of each component:
Switch to the grid user and run the crs_stat-t command to check the status.
2. Check the listener status:
Switch to the grid user and run the lsnrctl status Command to view the listening status of a single instance.
Execute lsnrctl status listener_scan1 to view the scan listening status
If we find that all of the above are normal, we will find the answer on metalink.
Cause:
Metalink Description: Client is able to resolve all Fully Qualified Domain Name (FQDN) SCAN and VIP name but not short ones (without domain name) as its in different domain;
Even though FQDN names were specified during Grid Infrastructure setup, due to bug 9150053 by default DBCA set database parameter local_listener to short node VIP name while database is created.
Therefore, you only need to change the host in the database instance parameter local_listener to the vip IP address.
Switch to the oracle user and run sqlplus '/as sysdba' to open the database.
The Code is as follows: |
Copy code |
# View the local_listener parameter of the Local Machine SQL> show parameter local_listener; NAME TYPE VALUE -------------------------- Local_listener string (DESCRIPTION = (ADDRESS_LIST = (AD DRESS = (PROTOCOL = TCP) (HOST = rac3 -Vip) (PORT = 1521 )))) # Modify the local_listener value on all nodes. Here, the domain name of my scanIP in hosts is rac-cluster, the address is 10.10.23.3, and the port is 11521. SQL> alter system set local_listener = '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = rac-cluster) (PORT = 11521 )))) 'scope = both; System altered. # Manually register the database instance to the listener SQL> alter system register; System altered. |
Then the windows client is connected successfully:
C: UsersWJW> sqlplus system/qweasd@192.168.2.200: 1521/orcl
SQL * Plus: Release 11.2.0.1.0 Production on Thu May 17 13:14:39 2012
Copyright (c) 1982,201 0, Oracle. All rights reserved.
Connected:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0-Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options