溫馨提示×

ubuntu lsnrctl安裝步驟詳解

小樊
42
2025-09-23 21:16:12
欄目: 智能運維

lsnrctl是Oracle數據庫的監聽器控制工具,并非Ubuntu系統自帶組件,需先安裝Oracle數據庫軟件才能使用。以下是在Ubuntu上安裝并配置lsnrctl的詳細步驟:

一、前置準備

  1. 系統更新
    運行sudo apt update && sudo apt upgrade -y,確保系統包列表及已安裝軟件為最新版本。
  2. 安裝基礎依賴
    Oracle數據庫及lsnrctl需要以下依賴包支持,執行sudo apt install -y build-essential libaio1 libgcc1 libstdc++6 libncurses5-dev libssl-dev unixodbc unixodbc-dev安裝。

二、安裝Oracle數據庫軟件(含lsnrctl)

lsnrctl屬于Oracle數據庫的一部分,需通過安裝Oracle數據庫軟件獲取。以Oracle 19c為例,步驟如下:

  1. 下載Oracle安裝包
    從Oracle官方網站下載適用于Linux的Oracle Database安裝包(如oracle-database-ee-19c-1.0-1.x86_64.rpm)。
  2. 轉換RPM為DEB格式
    Ubuntu使用DEB包,需通過alien工具轉換RPM包:
    sudo apt install -y alien
    sudo alien -d oracle-database-ee-19c-1.0-1.x86_64.rpm
    
  3. 安裝轉換后的DEB包
    sudo dpkg -i oracle-database-ee-19c-1.0-1.x86_64.deb
    
  4. 完成Oracle安裝向導
    運行sudo /etc/init.d/oracle-xe-19c configure,按提示設置數據庫SID、密碼、監聽端口(默認1521)等信息。

三、配置環境變量

為確保lsnrctl能正常運行,需配置Oracle相關環境變量。編輯~/.bashrc(或~/.profile)文件,添加以下內容:

export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1  # 替換為實際ORACLE_HOME路徑
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=orcl  # 替換為實際數據庫SID

保存后執行source ~/.bashrc使變量生效。

四、配置監聽器(listener.ora)

監聽器配置文件位于$ORACLE_HOME/network/admin/listener.ora,需根據網絡環境修改:

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

示例配置(按需調整HOST、PORT、SID_NAME):

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  # 主機名或IP地址
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)  # 數據庫SID
      (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)  # ORACLE_HOME路徑
    )
  )

保存退出。

五、配置客戶端連接(tnsnames.ora,可選)

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

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

示例配置(替換為實際HOST、PORT、SERVICE_NAME):

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)  # 數據庫服務名
    )
  )

保存退出。

六、啟動與管理lsnrctl

  1. 切換至Oracle用戶
    lsnrctl需以Oracle用戶身份運行,執行su - oracle切換。
  2. 啟動監聽器
    lsnrctl start
    
  3. 查看監聽器狀態
    lsnrctl status
    
    若顯示“Listener is ready”則表示啟動成功。
  4. 停止監聽器
    lsnrctl stop
    
  5. 重啟監聽器
    lsnrctl restart
    

七、創建systemd服務(可選,實現開機自啟)

為方便管理,可將監聽器配置為systemd服務:

  1. 創建服務文件
    sudo nano /etc/systemd/system/oracle-listener.service
    
  2. 添加以下內容(替換oracle為用戶、oinstall為組,$ORACLE_HOME為實際路徑):
    [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
    
  3. 重載systemd配置
    sudo systemctl daemon-reload
    
  4. 設置開機自啟并啟動服務
    sudo systemctl enable oracle-listener
    sudo systemctl start oracle-listener
    
  5. 查看服務狀態
    sudo systemctl status oracle-listener
    

注意事項

  • 權限問題:確保Oracle用戶對$ORACLE_HOME、$ORACLE_HOME/network/admin等目錄有讀寫權限。
  • 端口開放:防火墻需允許監聽端口(默認1521)通信,執行sudo ufw allow 1521/tcp開放端口。
  • 版本兼容:Oracle Instant Client版本需與數據庫版本一致,避免兼容性問題。
  • 日志排查:若啟動失敗,可查看監聽器日志$ORACLE_HOME/diag/tnslsnr/<hostname>/listener/alert/log.xml定位問題。

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