oracle監聽是個伺服器端進程,負責監聽客戶端發來的請求,能夠給客戶端電腦和資料庫電腦建立資料的連結;oracle監聽收到request後派生出server process提供服務,會根據資料庫配置提供專有和共享兩種模式。
本教學操作環境: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@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中配置多个地址的字符串
再设置alter systemset local_listener='LISTENER2';
在共享服务器模式下,可以配置listener的一个参数叫做dispatchers,把这个分派器注册到一个非默认监听
ALTER SYSTEM SET DISPATCHERS=”(PROTOCOL=tcp)(LISTENER=lsnr2)”;
select service_id,name from vactiveservices可以查出,前面2个服务是注册到监听的,后面2个是Oracle有两个内部的服务,SYSBACKGROUND是后台进程使用的,SYS$USERS提供给没有指定服务的用户会话使用
service_names是服务名,如果为空,会把db_name.db_domain 注册到监听
推荐教程:《Oracle视频教程》
以上是什麼是oracle監聽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Oracle備份與恢復的核心目的是在數據丟失或損壞時,能夠快速恢復數據庫到一致的狀態。 1.備份階段:通過RMAN或其他工具,將數據庫文件複製到備份介質中。 2.恢復階段:當數據庫發生故障時,首先恢復備份數據,然後通過應用重做日誌文件,恢復到故障前的狀態。

OracleRAC通過多節點共享數據庫存儲,實現了高可用性和可擴展性。其工作原理包括負載均衡、故障轉移和動態節點擴展,確保系統的高效運行和數據一致性。

在OCI中部署和管理Oracle數據庫可以通過以下步驟實現:1.創建數據庫實例,使用OCIPythonSDK設置配置參數;2.配置網絡和存儲資源;3.連接到數據庫並執行SQL查詢;4.進行數據庫備份和恢復操作;5.優化數據庫性能,通過調整資源配置、網絡優化和備份策略。這是一個高度自動化的過程,用戶只需提供必要的配置參數,OCI會處理剩餘的工作。

OracleDBA面試準備需要掌握數據庫架構、性能調優和備份恢復等核心知識。 1.了解Oracle數據庫架構,包括實例和數據庫的關係。 2.掌握性能調優方法,如SQL調優和索引優化。 3.熟悉備份與恢復策略,使用RMAN和數據泵工具。通過這些準備,你能在面試中展現專業技能,成功通過面試。

OracleSQL调优可以通过以下步骤提升查询性能:1.创建适当的索引,如为department列创建索引;2.分析执行计划,使用EXPLAINPLAN命令查看并优化;3.进行SQL重写,如使用子查询避免不必要的连接操作。通过这些方法,可以显著提升Oracle数据库的查询效率。

Oracle數據庫的安全性可以通過多種措施實現,包括認證、授權、加密和審計。 1)使用密碼文件進行用戶認證和授權;2)通過透明數據加密(TDE)保護敏感數據;3)使用虛擬專用數據庫(VPD)實現細粒度的訪問控制;這些方法確保了數據的機密性、完整性和可用性。

OracleGoldenGate通過捕獲源數據庫的事務日誌並將變更應用到目標數據庫,實現實時數據複製和集成。 1)捕獲變更:讀取源數據庫的事務日誌,轉換為Trail文件。 2)傳輸變更:通過網絡傳輸到目標系統,使用數據泵進程管理傳輸。 3)應用變更:在目標系統上,複製進程讀取Trail文件並應用變更,確保數據一致性。

OraclePL/SQL中的過程、函數和包分別用於執行操作、返回值和組織代碼。 1.過程用於執行操作,如輸出問候語。 2.函數用於計算並返回值,如計算兩個數之和。 3.包用於組織相關元素,提高代碼的模塊化和可維護性,如管理庫存的包。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器