ORACLE的连接模式专用服务器和共享服务器
1.综述 ORACLE数据存在两种连接模式,一种是一个会话建立一个连接的专用服务器模式;另外一种是多个会话共用一个连接的共享服务器模式。在不同的场景中,恰当的运用可以极大的提高应用访问效率和命令执行效率。 2.专用服务器 专用服务器,顾名思义,就是指该
1.综述
ORACLE数据存在两种连接模式,一种是一个会话建立一个连接的专用服务器模式;另外一种是多个会话共用一个连接的共享服务器模式。在不同的场景中,恰当的运用可以极大的提高应用访问效率和命令执行效率。
2.专用服务器
专用服务器,顾名思义,就是指该服务器连接只提供单个用户使用,不得与其他用户共用。当用户采取专用服务器方式请求连接时,服务器会专门为该用户创建一个连接进程提供服务。
当我们进行专用服务器方式连接数据库时,则会创建一个专门的进程来提供服务:
然后,我们通过pl/sql developer用 scott用户与实例建立两个专用服务器连接,再次查询数据库实例进程:
可以发现实例多了两个会话进程,从而得出实例为每个会话分配一个专门进程,会话与专用服务器一一对应。
专用服务器的原理图如下所示:
当用户登录时,总会创建一个进程来为会话提供专门的服务。每当一个新会话建立,监听程序会创建新的专用服务器来提供专门服务,会话与专门服务器一一对应。用户的客户进程会通过某种网络通道与专门服务器直接通信,来响应我们提交的SQL、PL/SQL调用。
3.共享服务器
共享服务器,可以理解为类似连接池原理,有众多的会话,但可供使用的连接数一定,通过资源调度来动态管理会话与实例建立连接,这些连接供所有的会话共享,可以有效的减少资源负载。
共享服务器的原理如下图所示:
由于共享服务器进程的共享,需要在客户进程与共享服务器通信之间建立一种调度机制——调度程序,来保障调度的有效性。用户提出连接请求,监听器接收到连接请求后,会从可调用的调度程序中选择一个,将连接端口等信息返回给用户,调度程序在相应的端口等待,客户进程将于该调度程序进行连接。与调度程序连接后,将用户请求转入SGA的请求队列中,第一个空闲的共享服务器会得到这个请求,并进行处理。待处理完成,共享服务器会将结果放在响应的队列中。调度程序一致在监听响应队列,一旦发现有结果了,就会把结果传给用户。
4. 使用场景
专用服务器与共享服务器的主要区别:
客户进程不会与共享服务器直接通信,而可以与专用服务器直接通信。在客户进程与共享服务器之间还有一层调度机制。
共享服务器方式比专用服务器方式能够更好的分配资源,均衡负载,但是调度机制在使用过程中对系统资源有一定的消耗,执行效率有所下降,所以需要慎重使用方式。
专用服务器使用环境:
1. 连接用户数少的情况下,并不超出共享进程的限定数,提高了连接效率。
2. 数据库为了实现数据仓库,则必须使用专用服务器,oracle的强制要求。
3. 当联机事务处理系统满足用户连接数大于共享进程的限定数,且处理的事务都是大,则专用服务相对于共享服务器更高效。
共享服务器使用环境:
1. 连接用户数比较多,事务都比较小,则共享服务器可以高效的配置资源调高效率。
2. 服务器内存的考虑,共享服务器可以再有效的资源下更加高效。
3. 例如:负载均衡等特性要求采用共享服务器。
ORACLE默认推荐使用的是专用服务器方式,而共享服务器带了优势:
1. 操作系统进程数减少,减少操作系统上下文切换的资源消耗,提高效率。
2. 有效的限制并发度,即将系统消耗现在一个合理的范围。
这两种模式有利有弊需要视情况使用。
5. 服务器模式设置
5.1 专用服务器
专用服务器这是ORACLE的默认启动选项,不需要额外的设置。
5.2 共享服务器
1.参数:SHARED_SERVERS
SHARED_SERVERS的值大于0,表示启动了共享模式。
共享服务器个数:
alter systemset shared_servers = 1 scope=both ;
最大共享服务器个数:
alter systemset max_shared_servers = 5 scope=both ;
2.参数:DISPATCHERS
alter systemset dispatchers=’ (PROTOCOL=TCP) (SERVICE=zrgXDB) ‘;
ORACLE文档上指出该参数为可选项,如果不配置将匹配任何协议和服务。但在测试将参数设置为控制,进行登录时,显示失败。
PROTOCOL表示连接的协议。
SERVICE表示允许共享服务器的服务。
3.在客户端的tnsnames.ora 的tns设置中,在 CONNECT_DATA 设置中将SERVER 的值 DEDICATED改为SHARED,即可使用共享服务器连接。
5.3 TNS配置在客户端的TNS中配置如下:
根据监听器状态,服务zrgXDB.zrg.com可以配置共享服务器连接:
DBZRG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.199.134)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = zrgXDB.zrg.com)
)
)
如果我们将SERVICE_NAME改为orcl.zrg.com或pdbzrg.zrg.com,则会出现ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄。
而专用服务器的连接可以配置为:
DBZRG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.199.134)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = zrgXDB.zrg.com)
)
)
专用服务器模式是数据库默认支持的所以无需配置,而共享服务器需要配置开启的,支持共享服务器模式的,也可以进行专用服务器模式连接。
我们也可以将SERVICE_NAME改用SID=epps代替,epps作为连接的实例,存在服务使用共享服务器,可以建立共享服务器连接,同时也可以建立专用服务器连接。
6. 服务器模式判断
判断当前是否启动了共享服务器可以从以下视图入手:
1. V$session
可以看到我用PL/SQL DEVELOPER与实例建立了共享服务器方式:SERVER类型为SHARED,如果为NONE也表示了启用了共享服务器。还可以发现系统后台进程全部启动了专用服务器进程。
2. V$shared_server
启动共享服务器:
关闭共享服务器:
需要将已经建立的共享服务器的会话结束,该参数才会发生变化。
3. V$circuit
有查询结果则表示启用了共享模式,否则不能做出判断。
4. 查看监听器状态
从以上信息,我们看到有一个服务zrgXDB.zrg.com使用的是共享服务器,有一个调度器“D000”;还有两个服务orcl.zrg.com,pdbzrg.zrg.com使用的是专用服务器。
7. 关闭共享服务器模式
将参数shared_servers的值设置为0,就可以禁用共享服务器模式了。
命令如下:
alter systemset shared_servers = 0 ;

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

可以通過使用 Oracle 的動態 SQL 來根據運行時輸入創建和執行 SQL 語句。步驟包括:準備一個空字符串變量來存儲動態生成的 SQL 語句。使用 EXECUTE IMMEDIATE 或 PREPARE 語句編譯和執行動態 SQL 語句。使用 bind 變量傳遞用戶輸入或其他動態值給動態 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 執行動態 SQL 語句。
