在 Linux 上连接 Oracle 数据库失败,原因可能有很多,下面按最常见场景帮你系统梳理,并给出排查步骤。你可以对照看是哪一类。
现象
ORA-12170: TNS:Connect timeout occurredConnection refused检查
ping <oracle_ip>
telnet <oracle_ip> 1521
# 或
nc -zv <oracle_ip> 1521
可能原因
检查监听状态
lsnrctl status
若未启动
lsnrctl start
常见错误
ORA-12541: TNS:no listenerORA-12545: Connect failed because target host or object does not exist文件位置
$ORACLE_HOME/network/admin/tnsnames.ora
测试
tnsping ORCL
常见问题
错误示例
ORA-12514: TNS:listener does not currently know of service requested确认数据库服务名
SELECT name FROM v$database;
SELECT value FROM v$parameter WHERE name='service_names';
连接示例
sqlplus user/pass@//ip:1521/servicename
检查
which sqlplus
echo $ORACLE_HOME
echo $LD_LIBRARY_PATH
常见错误
sqlplus: command not foundlibclntsh.so not foundsqlplus / as sysdba
SQL> startup
错误
ORA-01034: ORACLE not availableALTER USER scott ACCOUNT UNLOCK;
ALTER USER scott IDENTIFIED BY newpass;
systemctl status firewalld
getenforce
ping iptelnet ip 1521lsnrctl statustnsping 服务名sqlplus 用户/密码@//ip:1521/服务名请贴出(可打码):
我可以一步一步帮你解决。