一、配置CentOS網絡接口(基礎網絡設置) 要確保Oracle數據庫能通過網絡訪問,需先正確配置CentOS系統的網絡接口(以靜態IP為例,若用DHCP可跳過IPADDR、NETMASK等靜態參數設置)。
eth0,路徑為/etc/sysconfig/network-scripts/ifcfg-eth0)。DEVICE=eth0(網卡名稱,可通過ip addr命令查看)BOOTPROTO=static(靜態IP模式)IPADDR=192.168.1.100(服務器IP地址)NETMASK=255.255.255.0(子網掩碼)GATEWAY=192.168.1.1(網關地址)DNS1=8.8.8.8(首選DNS服務器)DNS2=8.8.4.4(備用DNS服務器)ONBOOT=yes(開機自動啟動網絡)。sudo systemctl restart network(或service network restart)使配置生效。ip addr show(或ifconfig)查看IP地址是否正確,用ping 8.8.8.8測試網絡連通性。二、配置Oracle監聽器(接收客戶端連接請求)
監聽器是Oracle數據庫與客戶端通信的關鍵組件,需通過listener.ora文件配置。
oracle),執行su - oracle。vi命令打開$ORACLE_HOME/network/admin/listener.ora($ORACLE_HOME為Oracle安裝目錄,如/u01/app/oracle/product/19.0.0/dbhome_1)。your_hostname為服務器主機名或IP地址):LISTENER = (
DESCRIPTION_LIST = (
DESCRIPTION = (
ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)
)
)
)
若需支持多個實例,可添加SID_LIST_LISTENER段(指定SID與Oracle Home路徑)。lsnrctl stop停止監聽器,再用lsnrctl start啟動監聽器。lsnrctl status,檢查輸出中是否包含配置的監聽端口(如1521)及狀態(RUNNING)。三、配置tnsnames.ora文件(定義數據庫連接別名)
tnsnames.ora文件用于簡化客戶端連接數據庫的步驟,需在客戶端和服務器端均配置(若客戶端與服務器在同一臺機器,可省略服務器端配置)。
vi命令打開$ORACLE_HOME/network/admin/tnsnames.ora。your_hostname、your_service_name為實際值,ORCL為自定義連接別名):ORCL = (
DESCRIPTION = (
ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)
CONNECT_DATA = (
SERVER = DEDICATED
SERVICE_NAME = your_service_name
)
)
)
其中,SERVICE_NAME需替換為數據庫的實際服務名(可通過lsnrctl status查看)。sqlplus username/password@ORCL命令測試連接(username為數據庫用戶名,password為密碼,ORCL為配置的別名)。四、配置防火墻(允許Oracle端口通過)
CentOS默認開啟firewalld防火墻,需開放Oracle監聽端口(默認1521)以允許外部連接。
firewall-cmd --permanent --zone=public --add-port=1521/tcp(永久添加1521端口規則)。firewall-cmd --reload使規則生效。firewall-cmd --zone=public --query-port=1521/tcp,若返回yes則表示開放成功。五、關閉SELinux(可選,避免權限問題) SELinux可能會阻止Oracle監聽器綁定端口或訪問網絡,建議關閉(生產環境建議配置SELinux策略而非完全關閉)。
setenforce 0(立即生效,重啟后恢復)。/etc/selinux/config文件,將SELINUX=enforcing修改為SELINUX=disabled,保存后重啟系統。六、驗證Oracle網絡連通性 完成上述配置后,需通過以下步驟驗證網絡是否正常:
lsnrctl status,確認監聽器正在運行且監聽正確端口。sqlplus / as sysdba進入數據庫,再執行lsnrctl status確認監聽器狀態。sqlplus username/password@your_hostname:1521/ORCL命令測試連接(替換為實際值)。