Oracle資料庫監聽器是負責監聽資料庫服務的程序,其主要功能是為客戶端操作提供連接埠和連接,維護資料庫和客戶端之間的通訊。當需要對監聽器進行修改時,需要考慮一些因素和步驟。
觸發監聽器修改的因素通常包括:網路拓撲變更、資料庫執行個體參數修改,以及安全性設定變更等。為了使新的配置生效並填入客戶端請求,需要適當修改監聽器配置,具體步驟如下:
步驟一:檢查所有監聽器的狀態
在修改監聽器之前,先檢查所有監聽器的狀態,使用指令lsnrctl status 可以查看監聽器的目前狀態,如:
LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yourhost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 26-MAY-2019 09:21:48 Uptime 0 days 0 hr. 8 min. 29 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/yourhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yourhost)(PORT=1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
透過上述指令可以查看到監聽器的狀態、版本、啟動時間、服務摘要等資訊。如果監聽器沒有在執行,則需要使用指令 lsnrctl start 開啟監聽器。
步驟二:修改監聽器設定檔
監聽器的設定檔位於 $ORACLE_HOME/network/admin 目錄下,檔案名稱為 listener.ora。修改該檔案前,先備份原始設定檔。可以使用文字編輯器開啟 listener.ora 文件,並對其中的配置進行修改。例如,增加一個新的服務監聽:
# 添加一个新的服务监听 SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=test) (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1) (PROGRAM=oracle) ) ) # 添加监听的IP地址和端口 LISTENER= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=192.168.1.10) (PORT=1521) ) ) ) # 添加新服务的信息 SID_DESC_LISTENER (SID_DESC = (GLOBAL_DBNAME=test) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = test) )
另外,還可以對監聽器的參數進行修改,例如修改監聽器的連接埠號,使用參數檔案等等。網路中的其他設備如交換器、路由器、防火牆等也可能影響監聽器,需要根據實際情況進行相應設定。
步驟三:重新啟動監聽器
在修改完監聽器設定檔之後,需要重新啟動監聽器使新的設定生效。可以使用指令 lsnrctl stop 停止監聽器,然後使用指令 lsnrctl start 啟動監聽器。
LSNRCTL> stop Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yourhost)(PORT=1521))) The command completed successfully LSNRCTL> start Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/yourhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yourhost)(PORT=1521))) Services summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
步驟四:測試新設定
在完成監聽器設定的修改和重新啟動之後,需要進行一些測試來驗證新的設定是否生效。可以使用tnsping 工具或資料庫用戶端連線來測試監聽器是否可以接受客戶端請求。例如使用 tnsping “test”指令測試新增的服務監聽是否正常。
tnsping test
如果傳回類似「OK」等訊息,則表示新設定的監聽器可以接受用戶端請求並回傳回應,表示設定已經生效。
要注意的是,在修改監聽器配置過程中,需要謹慎操作,避免原始配置資訊的遺失和資料庫存取的不穩定。在實際操作中,可以採取一定的安全措施如備份設定檔、測試修改結果等,以保障資料庫的正常運作。
以上是oracle 怎麼修改監聽的詳細內容。更多資訊請關注PHP中文網其他相關文章!