溫馨提示×

Linux Oracle網絡配置指南

小樊
46
2025-09-25 08:03:23
欄目: 云計算

Linux環境下Oracle數據庫網絡配置指南

一、前置準備

在開始配置前,需確認以下信息:

  • 數據庫服務器IP地址(如192.168.1.100)、監聽端口(默認1521)、數據庫實例SID(如orcl)或全局數據庫名(如orcl.example.com);
  • Oracle用戶對網絡配置文件及$ORACLE_HOME/network/admin目錄有讀寫權限;
  • 確保Oracle數據庫服務已啟動(sqlplus / as sysdbastartup)。

二、配置網絡接口(靜態IP)

Oracle網絡依賴穩定的網絡接口配置,需將Linux服務器設置為靜態IP(避免DHCP導致IP變動影響連接)。

1. 查看當前網絡接口

使用ip addrifconfig命令查看可用接口(如eth0、ens33):

ip addr show

2. 編輯網絡配置文件

根據Linux發行版選擇對應文件:

  • CentOS/RHEL 7+/etc/sysconfig/network-scripts/ifcfg-eth0eth0為接口名);
  • Debian/Ubuntu/etc/network/interfaces。

示例(CentOS/RHEL):

DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static  # 靜態IP
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes  # 開機自啟

示例(Debian/Ubuntu):

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

3. 重啟網絡服務

# CentOS/RHEL 7+
sudo systemctl restart network

# Debian/Ubuntu
sudo systemctl restart networking

4. 驗證配置

ip addr show eth0  # 確認IP已生效
ping -c 4 192.168.1.100  # 測試自身連通性

三、配置Oracle監聽器(Listener)

監聽器負責接收客戶端連接請求并轉發至數據庫實例。

1. 進入監聽器配置目錄

cd $ORACLE_HOME/network/admin

2. 編輯listener.ora文件

使用文本編輯器(如vi)修改或創建listener.ora,添加以下內容:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 監聽IP和端口
      # 可選:添加IPC協議(用于本地連接)
      # (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

# 可選:定義監聽的數據庫實例(SID)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)  # 數據庫實例SID
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)  # Oracle安裝路徑
    )
  )

3. 啟動/重啟監聽器

lsnrctl stop  # 停止監聽器(若已運行)
lsnrctl start  # 啟動監聽器

4. 驗證監聽器狀態

lsnrctl status

輸出應包含:

  • 監聽器名稱(LISTENER)、狀態(RUNNING);
  • 監聽的協議、地址(如TCP:192.168.1.100:1521);
  • 注冊的數據庫服務(如orcl.example.com)。

四、配置客戶端網絡服務名(tnsnames.ora)

tnsnames.ora文件用于將客戶端易記的服務名映射至服務器的監聽地址和數據庫服務。

1. 編輯tnsnames.ora文件

路徑:$ORACLE_HOME/network/admin/tnsnames.ora。

2. 添加服務名配置

示例(連接至遠程數據庫):

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 監聽器地址
    (CONNECT_DATA =
      (SERVER = DEDICATED)  # 連接模式(專用服務器)
      (SERVICE_NAME = orcl.example.com)  # 數據庫全局服務名(需與監聽器注冊的一致)
    )
  )

示例(連接至本地數據庫,使用SID):

ORCL_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = orcl)  # 數據庫實例SID
    )
  )

3. 測試連接

使用sqlplus命令測試:

sqlplus username/password@ORCL  # 使用服務名連接

若配置正確,將進入Oracle命令行界面。

五、可選配置:名稱解析優化

為簡化連接字符串,可通過以下方式優化名稱解析:

1. 配置/etc/hosts文件

將服務器IP與主機名綁定(適用于客戶端與服務器在同一網絡):

sudo vi /etc/hosts

添加:

192.168.1.100  orcl-server  orcl.example.com

之后可使用sqlplus username/password@orcl-server連接。

2. 配置sqlnet.ora文件

路徑:$ORACLE_HOME/network/admin/sqlnet.ora。
設置名稱解析順序(優先使用TNSNAMES,即本地tnsnames.ora文件):

NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

其中EZCONNECT允許使用host:port/service_name格式連接(如sqlplus username/password@192.168.1.100:1521/orcl)。

六、防火墻與SELinux配置

確保防火墻允許Oracle監聽端口(默認1521)通過:

1. 使用iptables(舊版Linux)

sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save  # 保存規則(CentOS 6)

2. 使用firewalld(新版Linux,如CentOS 7+)

sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload

3. 處理SELinux(若啟用)

若SELinux處于Enforcing模式,需允許Oracle網絡訪問:

sudo setsebool -P oracle_net_tcp_listen=1

七、常見問題排查

  • 監聽器無法啟動:檢查listener.ora文件語法(如括號匹配)、端口是否被占用(netstat -tulnp | grep 1521);
  • 客戶端無法連接:確認tnsnames.ora中的主機名/IP、端口、服務名與服務器一致;檢查防火墻是否放行端口;
  • 監聽器狀態顯示“無注冊服務”:確保數據庫實例已啟動(sqlplus / as sysdbastartup),且LOCAL_LISTENER參數設置正確(show parameter local_listener)。

通過以上步驟,可完成Linux環境下Oracle數據庫的網絡配置,實現客戶端與服務器的安全、穩定連接。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女