Today, because the ETL node machine wants to access a new database server, it needs to configure tnsnames.ora, and after the result is configured, an error is reported when connecting to the database:
ORA-12547: TNS:lost contact
At first, I thought it was tnsnames.ora misconfigured, but after comparison and verification, this possibility was ruled out. Because the same configuration on other hosts has been verified to connect to this database server.
Next, I searched a lot of information on the Internet according to this error "ORA-12547: TNS: lost contact", some said that there was a lack of software packages, and some said that there was a problem with the file permission settings on the database host, but they were not in line with the situation encountered this time.
Later, I decided to look at the logs, checked the monitoring log listener.log of the database, and found that there were the following error messages in it: 20-MAY-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Incoming connection from 192.168.24.1 rejected 20-MAY-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Permission denied
reference, and checked the sqlnet.ora configuration of the database server, and found that it was because the database access IP restriction was set, that is, only the specified IP could access the database.
Since it is a two-node RAC database, modifying sqlnet.ora under the grid user is to add the IP address of the ETL node to the IP whitelist to access the database. After modification, restart the listening (lsnrctl reload), otherwise an error will still be reported. |