在 oracle 中配置監(jiān)聽(tīng)程序需要以下步驟:檢查現(xiàn)有監(jiān)聽(tīng)程序(使用 lsnrctl status 命令)。創(chuàng)建監(jiān)聽(tīng)程序(如果不存在)。啟動(dòng)監(jiān)聽(tīng)程序(使用 lsnrctl start 命令)。檢查監(jiān)聽(tīng)程序狀態(tài)(再次使用 lsnrctl status 命令)。在客戶端配置 tnsnames.ora 文件。
如何在 Oracle 中配置監(jiān)聽(tīng)程序
步驟 1:檢查現(xiàn)有的監(jiān)聽(tīng)程序
使用 lsnrctl status
命令查看當(dāng)前正在運(yùn)行的監(jiān)聽(tīng)程序。
如果有多個(gè)監(jiān)聽(tīng)程序,請(qǐng)使用 -n
選項(xiàng)指定要檢查的監(jiān)聽(tīng)程序的名稱。
步驟 2:創(chuàng)建監(jiān)聽(tīng)程序(如果不存在)
創(chuàng)建一個(gè)文本文件,例如 listener.ora
,并添加以下內(nèi)容:
<code>SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl) (ORACLE_HOME = /u01/app/oracle/product/19.0.0.0/dbhome_1) (PROGRAM = *)))</code>
登錄后復(fù)制
其中,orcl
是數(shù)據(jù)庫(kù)的 SID,/u01/app/oracle/product/19.0.0.0/dbhome_1
是 Oracle 主目錄,*
允許所有程序訪問(wèn)監(jiān)聽(tīng)程序。
保存文件并將其復(fù)制到監(jiān)聽(tīng)程序配置文件目錄,通常為 /etc/oracle/<version>/network/admin</version>
。
步驟 3:?jiǎn)?dòng)監(jiān)聽(tīng)程序
使用以下命令啟動(dòng)監(jiān)聽(tīng)程序:
<code>lsnrctl start <listener_name></listener_name></code>
登錄后復(fù)制
其中,<listener_name></listener_name>
是監(jiān)聽(tīng)程序的名稱。
步驟 4:檢查監(jiān)聽(tīng)程序狀態(tài)
使用 lsnrctl status
命令再次檢查監(jiān)聽(tīng)程序的狀態(tài)。
如果監(jiān)聽(tīng)程序啟動(dòng)成功,您將看到類(lèi)似以下輸出:
<code>LSNRCTL for Linux: Version 12.2.0.1.0 - Production on Wed Apr 20 16:51:32 2023 Copyright (c) 1991, 2017, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version 12.2.0.1.0 Start Date Wed Apr 20 16:51:32 2023 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Default Service orclXDB</code>
登錄后復(fù)制
步驟 5:配置客戶端
在客戶端計(jì)算機(jī)上,編輯 tnsnames.ora
文件(通常位于 $ORACLE_HOME/network/admin
)。
添加以下條目:
<code><listener_name> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = <port>)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <service_name>) ) )</service_name></port></hostname></listener_name></code>
登錄后復(fù)制
其中,<listener_name></listener_name>
是監(jiān)聽(tīng)程序的名稱,<hostname></hostname>
是監(jiān)聽(tīng)程序所在計(jì)算機(jī)的名稱,<port></port>
是監(jiān)聽(tīng)程序的端口,<service_name></service_name>
是要連接的數(shù)據(jù)庫(kù)服務(wù)的名稱。