Debian 上 sqlplus 的网络配置
一、场景与目标
sqlplus user/pass@host:1521/service_namesqlplus user/pass@ORCL(依赖 tnsnames.ora)二、客户端侧配置步骤(Debian 上使用 sqlplus 连接远程库)
~/.bashrc 或 /etc/profile):
export ORACLE_HOME=/usr/lib/oracle/<版本>/client64export TNS_ADMIN=$ORACLE_HOME/network/adminexport PATH=$PATH:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHsource ~/.bashrc 或 source /etc/profilesudo apt-get install libaio1$ORACLE_HOME/network/admin/tnsnames.oraORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.0.2.10)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
sqlplus scott/tiger@192.0.2.10:1521/orclsqlplus scott/tiger@ORCLping <数据库主机IP>telnet <数据库主机IP> 1521(或 nc -vz <IP> 1521)确认端口可达三、服务器端配置步骤(本机是 Oracle 数据库时)
$ORACLE_HOME/network/admin/listener.oraLISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(SID_NAME = orcl)
)
)
lsnrctl start 或 lsnrctl reloadlsnrctl status(确认监听端口为 1521 且服务已注册)sudo ufw allow 1521/tcpsudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPTsqlplus sys/pass@your_host:1521/orcl as sysdba(或普通用户)四、常见问题与排查
tnsnames.ora 是否存在于 $TNS_ADMIN 指定目录;别名拼写、括号匹配是否正确;必要时直接使用简易连接排除 TNS 问题。lsnrctl status)、端口 1521 已放行、网络路由与 ACL 允许访问;客户端用 telnet/nc 验证端口连通性。tnsnames.ora 的 CONNECT_DATA 中使用正确的 SERVICE_NAME(可在服务器端 show parameter service_name 查看)。tnsnames.ora 或 /etc/hosts 中使用 IP 地址;必要时在 sqlnet.ora 中避免不必要的 NAMES.DEFAULT_DOMAIN 干扰。五、Debian 系统网络要点(确保基础网络可达)
/etc/network/interfaces):auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
sudo systemctl restart networkingip addr show eth0、ping 8.8.8.8、cat /etc/resolv.conf