oracle圖形化配置listener.ora文件
概述:
監聽的特點:
具有獨立性
連接建立流程
默認端口號1521
*服務端需要listener.ora,客戶端需要tnsname.ora文件
1.客戶端向監聽發起請求
監聽知道數據庫的位置,但是之間沒有長連接,
2.監聽把用戶的請求轉給數據庫的實例,實例爲連接專門啓動一個server process,將server process的地址告訴監聽,監聽把地址告訴客戶端
3.客戶端通過地址server process建立連接,用戶將用戶名和密碼給server process,SP線程帶着信息去數據庫驗證,驗證成功,連接正式建立。
listener的作用:建立連接的時候,負責轉發;一旦建立了連接,即使listener關閉,連接也會存在,利用ps -ef | grep oracle,可以看到會話連接
依舊存在
listener.ora的位置:/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
注意:短時間內大量連接上來的時候,listener處理的比較慢,用戶感覺連接比較慢。
listener.ora文件作用
listener.ora文件中存放了客戶機與服務器連接所需要的監聽地址,以及服務器啓動監聽進程時的信息。
手動配置listener.ora文件
listener.ora文件存放位置
直接在這個路徑下vi編輯創建listener.ora文件
--vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
圖形化配置listener.ora文件
調用圖形化界面
[oracle@test ~]$ netca
在文件中可以修改host參數,根據ip或者hostname填寫,默認值是localhost,建議使用IP地址
命令:
lsnrctl start
lsnrctl status
lsnrctl stop
tnsnames.ora文件配置
使用netca命令,圖形化建立tnsnames.ora文件
tnsnames.ora文件內容,粘貼複製,可手動配置
-- vi tnsnames.ora
#靜態註冊
SID_LIST_LISTENER_PHALR =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = phalr)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0)
(SID_NAME = phalr)
)
)
#動態註冊
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
[oracle@source admin]$ tnsping ORA_130
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 11-NOV-2019 17:49:39
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
OK (0 msec)
排錯流程
1.
tnsnames.ora
ip、端口號:服務器端 netstat -tulnp|grep 1521
service_names show parameter service
2.
tnsping
lsnrctl status
--以上證明我們的客戶端配置沒有問題
靜態文件配置
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(PROGRAM = extproc)
)
)
--------------------------------------------------------------------
listener.ora
GLOBAL_DBNAME是服務名,SID_NAME是實例名稱。GLOBAL_DBNAME可以定義多個,SID_NAME對應一個存在的實例,不能瞎寫。
客戶端:
客戶端連接使用的是註冊到listener中的服務名進行比對,根據服務名尋找實例名,建立會話。
訪問數據庫方式:
-- 用戶名/密碼@Net_service_name
-- Net_service_name:tnsnames.ora中的
--解析出IP、port,先找到監聽,再喝監聽裏的服務名比對,如果一致,就連接數據庫
sqlplus sys/oracle@ORA_130 as sysdba
注:如果本機測試訪問,記得關閉防火牆
firewalld的基本使用
啓動: systemctl start firewalld
關閉: systemctl stop firewalld
查看狀態: systemctl status firewalld
開機禁用 : systemctl disable firewalld
開機啓用 : systemctl enable firewalld