目錄
什麼是oracle監聽
首頁 資料庫 Oracle 什麼是oracle監聽

什麼是oracle監聽

May 26, 2022 am 10:29 AM
oracle

oracle監聽是個伺服器端進程,負責監聽客戶端發來的請求,能夠給客戶端電腦和資料庫電腦建立資料的連結;oracle監聽收到request後派生出server process提供服務,會根據資料庫配置提供專有和共享兩種模式。

什麼是oracle監聽

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

什麼是oracle監聽

oracle監聽,是個伺服器端進程,負責監聽客戶端發來的請求

監聽器可以不必駐留在資料庫主機上,即可以把實例註冊到遠端主機上的監聽

監聽是oracle自帶的軟體或是說元件

本地連線可以不用監聽,但是遠端連線必須

oracle監聽收到user process發出的request後,派生出server process來提供服務,server程序根據資料庫的配置有2種模式:專有模式和共享模式

  專有模式:每個客戶端進程都有單獨的server程序來建立session提供服務,絕大部分超過99%的資料庫都是這種模式

  共享模式:有個分配器叫dispatch,監聽把請求放入請求隊列中, dispatch會不停的查詢請求佇列,當發現有請求時候就把請求轉給server進程,再透過server程序提供服務,處理完後回傳給回應佇列,dispatch再把回應佇列中的轉送給使用者程序。類似與餐廳吃飯,server進程相當於廚師,dispatch相當於服務員,服務員接受請求並轉發給相應的空閒廚師提供服務,廚師做好的菜放在哪兒,服務員再端給客戶;這種模式用的不多

dbca建庫後一般會有預設監聽,不用再配置,監聽的服務埠預設1521

一般的庫一個監聽就夠了,但是並發量太大的話可能需要設定多個監聽,非預設監聽的連接埠號碼大於1024即可,不同監聽之間服務名稱和連接埠號碼不能一樣

監聽如何區別不同的函式庫呢,所以需要把實例進行服務註冊,註冊到在listen中,

註冊就是將主機上跑的實例加入到listen裡,讓listen知道主機上有哪些實例

設定方法

##動態註冊

服務註冊有2種,一種是動態註冊,是透過pmon進程主動的自動的把實例註冊到listen中

監聽和實例的啟動順序,當監聽先啟動,沒問題,如果監聽後啟動,那麼可以手工alter system register註冊下,或者不用管,pmon會隔一段時間就去註冊下

一般默認監聽是動態註冊

不需要listener.ora檔案

服務狀態中有status READY(庫在mount或open狀態)字樣

pmon給監聽提供實例名稱、服務名稱、服務處理程序的型別與位址

註冊的服務名叫db_name.db_domain,db_nameXDB.db_domain

如果要pmon註冊到非預設監聽,就要設定local_listener參數了

什麼是oracle監聽

#配置監聽可以透過netca圖形配置,也可以指令配置

什麼是oracle監聽

預設監聽的名稱LISTENER,配置如上,實際上沒有這個listener.ora,預設listen也是可以正常運作的那麼下面增加一個在1522埠的非預設動態監聽,名稱叫做listener2

首先netmgr圖形加入一個監聽

什麼是oracle監聽

#或編輯listener.ora來加入監聽也行

什麼是oracle監聽

然後修改tnsnames.ora加入一個listener2的字串,以便修改local_listener參數,(就是把監聽中的那一段複製到tnsnames.ora中)

什麼是oracle監聽

設定下local_listener參數並手工註冊下即可,

[oracle@study admin]$ sql
 
SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 19 17:07:41 2019
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
17:07:42 SYS@study> show parameter local_list
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string
17:08:19 SYS@study> alter system set local_listener='LISTENER2';
 
System altered.
 
Elapsed: 00:00:00.04
17:09:03 SYS@study> alter system register;
 
System altered.
 
Elapsed: 00:00:00.00
17:09:21 SYS@study> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@study admin]$ lsnrctl status listener2
 
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-SEP-2019 17:10:22
 
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     listener2
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                19-SEP-2019 16:38:16
Uptime                    0 days 0 hr. 32 min. 6 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/study/listener2/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=study.localdomain)(PORT=1522)))
Services Summary...
Service "study" has 1 instance(s).
  Instance "study", status READY, has 1 handler(s) for this service...
Service "studyXDB" has 1 instance(s).
  Instance "study", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@study admin]$
登入後複製

不過這樣的話默認,pmon就不會往預設監聽註冊了,也就是從1521存取不到了,如果要1521 1522同時提供服務,可以刪除預設監聽,設定改為

LISTENER2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = study.localdomain)(PORT = 1522))
    (ADDRESS = (PROTOCOL = TCP)(HOST = study.localdomain)(PORT = 1521))
  )
登入後複製

由於動態監聽依賴PMON,刪除監聽設定文件,預設監聽依然有效,監聽依舊監聽localhost:1521,LOCAL_LISTENER這個參數控制實例將自身動態註冊到哪裡,LOCAL_LISTENER 這個參數的預設值是(ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT= 1521)),PMON依舊主動註冊實例到監聽,dbca建庫後預設就是這樣的註冊方式

看的出來動態監聽要求監聽和local_listener參數配置是一致的,都是缺省的空的配置即預設監聽,非預設就顯示配置這兩個地方即可

tnsnames

.ora在动态监听中不是必须的,只是为了配置个本地的字符串方便local_listener的配置命令而已,直接配置如下形式也ok

alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1521))';      
等同于alter system set local_listener='';
登入後複製

配置注册到多个监听,可以如下

alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1521))','(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1522))';
登入後複製

或者先在tnsnames.ora中配置多个地址的字符串

什麼是oracle監聽

再设置alter systemset local_listener='LISTENER2';

在共享服务器模式下,可以配置listener的一个参数叫做dispatchers,把这个分派器注册到一个非默认监听

ALTER SYSTEM SET DISPATCHERS=”(PROTOCOL=tcp)(LISTENER=lsnr2)”;
登入後複製

什麼是oracle監聽

select service_id,name from vactiveservices可以查出,前面2个服务是注册到监听的,后面2个是Oracle有两个内部的服务,SYSBACKGROUND是后台进程使用的,SYS$USERS提供给没有指定服务的用户会话使用

什麼是oracle監聽

service_names是服务名,如果为空,会把db_name.db_domain 注册到监听

推荐教程:《Oracle视频教程

以上是什麼是oracle監聽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1252
24
oracle打不開怎麼辦 oracle打不開怎麼辦 Apr 11, 2025 pm 10:06 PM

Oracle 打不開的解決辦法包括:1. 啟動數據庫服務;2. 啟動監聽器;3. 檢查端口衝突;4. 正確設置環境變量;5. 確保防火牆或防病毒軟件未阻止連接;6. 檢查服務器是否已關閉;7. 使用 RMAN 恢復損壞的文件;8. 檢查 TNS 服務名稱是否正確;9. 檢查網絡連接;10. 重新安裝 Oracle 軟件。

oracle游標關閉怎麼解決 oracle游標關閉怎麼解決 Apr 11, 2025 pm 10:18 PM

解決 Oracle 游標關閉問題的方法包括:使用 CLOSE 語句顯式關閉游標。在 FOR UPDATE 子句中聲明游標,使其在作用域結束後自動關閉。在 USING 子句中聲明游標,使其在關聯的 PL/SQL 變量關閉時自動關閉。使用異常處理確保在任何異常情況下關閉游標。使用連接池自動關閉游標。禁用自動提交,延遲游標關閉。

oracle怎麼循環創建游標 oracle怎麼循環創建游標 Apr 12, 2025 am 06:18 AM

Oracle 中,FOR LOOP 循環可動態創建游標, 步驟為:1. 定義游標類型;2. 創建循環;3. 動態創建游標;4. 執行游標;5. 關閉游標。示例:可循環創建游標,顯示前 10 名員工姓名和工資。

oracle視圖怎麼導出 oracle視圖怎麼導出 Apr 12, 2025 am 06:15 AM

可以通過 EXP 實用程序導出 Oracle 視圖:登錄 Oracle 數據庫。啟動 EXP 實用程序,指定視圖名稱和導出目錄。輸入導出參數,包括目標模式、文件格式和表空間。開始導出。使用 impdp 實用程序驗證導出。

oracle日誌寫滿怎麼辦 oracle日誌寫滿怎麼辦 Apr 12, 2025 am 06:09 AM

Oracle 日誌文件寫滿時,可採用以下解決方案:1)清理舊日誌文件;2)增加日誌文件大小;3)增加日誌文件組;4)設置自動日誌管理;5)重新初始化數據庫。在實施任何解決方案前,建議備份數據庫以防數據丟失。

HDFS配置CentOS需要哪些步驟 HDFS配置CentOS需要哪些步驟 Apr 14, 2025 pm 06:42 PM

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

甲骨文在商業世界中的作用 甲骨文在商業世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

oracle數據庫怎麼停止 oracle數據庫怎麼停止 Apr 12, 2025 am 06:12 AM

要停止 Oracle 數據庫,請執行以下步驟:1. 連接到數據庫;2. 優雅關機數據庫(shutdown immediate);3. 完全關機數據庫(shutdown abort)。

See all articles