若仅需通过SQL*Plus客户端连接远程数据库,可安装轻量化的Oracle Instant Client:
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命令安装:rpm -ivh oracle-instantclient19.8-basic-*.rpm
rpm -ivh oracle-instantclient19.8-sqlplus-*.rpm
~/.bashrc,添加以下内容:export ORACLE_HOME=/usr/lib/oracle/19.8/client64 # 根据实际安装路径调整
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
执行source ~/.bashrc使变量生效。若需连接本地数据库,确保Oracle数据库服务已启动:
systemctl status oracle-xe # 若为Oracle XE版本
# 或通过SQL*Plus以sysdba身份登录检查
sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
若状态为OPEN则表示数据库运行正常。
监听器负责接收客户端连接请求,需确保其配置正确并运行。
listener.ora文件文件路径通常为$ORACLE_HOME/network/admin/listener.ora,内容示例如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip)(PORT = 1521)) # 替换为服务器实际IP
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = your_sid) # 替换为数据库SID(可通过`lsnrctl status`查看)
(ORACLE_HOME = $ORACLE_HOME)
)
)
注意:HOST需设置为服务器IP(若为远程连接),而非localhost;SID需与数据库实例一致。
lsnrctl start # 启动监听器
lsnrctl status # 查看监听状态(确认"Listening Endpoints"中包含配置的IP和端口)
若监听未启动,需检查listener.ora文件语法是否正确。
tnsnames.ora文件用于定义数据库连接的别名,简化SQL*Plus连接命令。
tnsnames.ora文件文件路径为$ORACLE_HOME/network/admin/tnsnames.ora,内容示例如下:
YOUR_DB_ALIAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip)(PORT = 1521)) # 替换为服务器IP
(CONNECT_DATA =
(SERVICE_NAME = your_service_name) # 替换为数据库服务名(可通过`lsnrctl status`或`show parameter service_name`查看)
)
)
说明:SERVICE_NAME可通过以下命令获取:
sqlplus / as sysdba
SQL> SHOW PARAMETER SERVICE_NAME;
配置完成后,可通过别名快速连接:
sqlplus username/password@YOUR_DB_ALIAS
确保CentOS防火墙允许Oracle默认端口(1521)的流量:
firewall-cmd --permanent --zone=public --add-port=1521/tcp # 开放端口
firewall-cmd --reload # 重新加载防火墙规则
若使用iptables,需添加类似规则:
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
service iptables save
sqlplus username/password@YOUR_DB_ALIAS
tnsnames.ora)sqlplus username/password@your_server_ip:1521/your_service_name
提示:若连接成功,将进入SQL*Plus命令行界面;若失败,可通过tnsping YOUR_DB_ALIAS测试TNS解析是否正常。
ping your_server_ip)、防火墙设置及监听器状态(lsnrctl status)。lsnrctl start),且listener.ora中的HOST和PORT配置正确。tnsnames.ora中的SERVICE_NAME是否与数据库一致,或使用Easy Connect方式绕过tnsnames.ora。