CentOS环境下SQL*Plus网络配置指南
oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm、oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm),通过rpm -ivh命令安装。安装路径通常为/opt/oracle/instantclient_19_8(版本号可能不同)。.bashrc文件,添加以下关键变量(根据实际安装路径调整):export ORACLE_HOME=/opt/oracle/instantclient_19_8
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin # 指向tnsnames.ora所在目录
执行source ~/.bashrc使变量生效。ping <数据库服务器IP>,确认能正常收到回复(如64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.123 ms),确保两台机器网络可达。telnet <数据库服务器IP> 1521或nc -zv <数据库服务器IP> 1521(若未安装telnet/nc,可通过yum install telnet nc安装),若显示“Connected”或“succeeded”,说明1521端口(Oracle默认端口)开放;若失败,需检查防火墙或SELinux设置。$ORACLE_HOME/network/admin/listener.ora文件(若不存在则新建),确保HOST参数设置为服务器实际IP或0.0.0.0(允许所有IP连接),示例如下:LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 替换为实际IP
)
)
重启监听器使配置生效:lsnrctl stop && lsnrctl start。$TNS_ADMIN目录下创建/编辑tnsnames.ora文件,定义服务名映射(便于使用别名连接),示例如下:ORCL_ALIAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 替换为实际IP
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) # 替换为实际服务名(可通过数据库的`lsnrctl status`查看)
)
}
测试服务名解析:tnsping ORCL_ALIAS,若显示“OK”则表示配置正确。firewall-cmd --zone=public --add-port=1521/tcp --permanent # 永久开放
firewall-cmd --reload # 重新加载配置
若使用iptables,执行iptables -A INPUT -p tcp --dport 1521 -j ACCEPT并保存规则。Enforcing模式(getenforce返回Enforcing),可临时禁用(setenforce 0)或添加允许规则:setsebool -P oracle_db_port_t 1 # 允许Oracle数据库端口通信
在CentOS终端使用SQL*Plus连接远程数据库,有两种方式:
sqlplus username/password@192.168.1.100:1521/service_name
替换username、password、192.168.1.100(服务器IP)、service_name(数据库服务名)。sqlplus username/password@ORCL_ALIAS
替换ORCL_ALIAS为tnsnames.ora中定义的服务名。