oracle配置listener.ora和tnsnames.ora文件

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章