溫馨提示×

Ubuntu如何配置Oracle監聽器

小樊
49
2025-09-29 20:13:04
欄目: 云計算

Ubuntu配置Oracle監聽器詳細步驟

1. 前提準備

  • 安裝Oracle數據庫:確保Oracle Database已正確安裝在Ubuntu服務器上(如19c/21c版本)。
  • 配置Oracle環境變量:編輯~/.bashrc/etc/profile,添加以下變量(根據實際安裝路徑調整):
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1  # 替換為實際ORACLE_HOME路徑
    export ORACLE_SID=orcl                                   # 替換為實際數據庫SID
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
    執行source ~/.bashrc使變量生效。

2. 創建/編輯監聽器配置文件(listener.ora)

監聽器配置文件默認位于$ORACLE_HOME/network/admin/目錄下,使用文本編輯器(如vi)打開:

sudo vi $ORACLE_HOME/network/admin/listener.ora

添加或修改以下內容(關鍵參數說明見注釋):

# 監聽器基本配置:定義監聽的協議、IP地址和端口
LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))  # 監聽所有網絡接口(生產環境建議指定具體IP)
    )
  )

# 可選:關聯SID與Oracle Home(若需監聽多個數據庫實例)
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = orcl)           # 數據庫SID(需與實際一致)
      (ORACLE_HOME = $ORACLE_HOME) # 指向Oracle安裝目錄
    )
  )

保存并退出編輯器。

3. (可選)創建/編輯TNSNAMES.ORA文件

若需通過服務名連接數據庫,需配置tnsnames.ora文件(同樣位于$ORACLE_HOME/network/admin/):

sudo vi $ORACLE_HOME/network/admin/tnsnames.ora

添加以下內容(示例):

# 定義數據庫服務名(別名),用于客戶端連接
ORCL =
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 替換為服務器實際IP
    (CONNECT_DATA = 
      (SERVER = DEDICATED)           # 連接模式(專用服務器)
      (SERVICE_NAME = orcl)          # 數據庫服務名(需與實際一致)
    )
  )

保存并退出。

4. 啟動Oracle監聽器

使用lsnrctl命令啟動監聽器:

lsnrctl start

若啟動成功,將顯示類似以下信息:

Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ubuntu/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

5. 驗證監聽器狀態

通過以下命令檢查監聽器是否運行正常:

lsnrctl status

重點確認:

  • 監聽地址:是否包含配置的HOST(如0.0.0.0或具體IP);
  • 監聽端口:是否為配置的PORT(如1521);
  • 服務狀態:是否有目標數據庫SID(如orcl)且狀態為READY。

6. 常用管理命令

  • 停止監聽器lsnrctl stop
  • 重新加載配置(無需重啟):lsnrctl reload(修改listener.ora后無需停機即可生效)
  • 測試連接:使用tnsping命令驗證服務名是否可達(如tnsping ORCL)。

7. 可選:創建Systemd服務(便于管理)

若需將監聽器作為系統服務管理(開機自啟、狀態查看),可創建以下服務文件:

sudo vi /etc/systemd/system/oracle-listener.service

添加以下內容:

[Unit]
Description=Oracle Listener Service
After=network.target

[Service]
Type=forking
ExecStart=$ORACLE_HOME/bin/lsnrctl start
ExecStop=$ORACLE_HOME/bin/lsnrctl stop
ExecReload=$ORACLE_HOME/bin/lsnrctl reload
User=oracle
Group=oinstall
Restart=on-failure

[Install]
WantedBy=multi-user.target

執行以下命令啟用并啟動服務:

sudo systemctl daemon-reload
sudo systemctl start oracle-listener
sudo systemctl enable oracle-listener  # 開機自啟
sudo systemctl status oracle-listener  # 查看狀態

注意事項

  • 權限問題:確保Oracle用戶(如oracle)對$ORACLE_HOME/network/admin/目錄及文件有讀寫權限。
  • 防火墻設置:若服務器啟用了防火墻,需開放1521端口(Oracle默認監聽端口):
    sudo ufw allow 1521/tcp
    
  • 生產環境建議:將HOST設置為具體IP而非0.0.0.0,并啟用SSL加密(修改PROTOCOLTCPS)以提高安全性。

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