- 浏览: 1019885 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
Oracle MTS的相关问题
一、什么是MTS
MTS = Multi-Threaded Server
MTS是ORACLE SERVER的一个可选的配置选择,是相对DEDICATE方式而言,它最大的优点是在以不用增加物理资源(内存)的前提下支持更多的并发的连接。
Joseph C.Johnson以餐馆给出一个MTS的形象的比喻
假设ORACLE是一家餐馆,当你走进一家餐馆时你感觉最舒服的服务方式就是有一个专门的waiter来为你服务,而不管餐馆中来了多少人,她只对你请求应答,这是DEDICTE的处理方式,也就是说每一个ORACLE客户端的连接都有一个专门的服务进程来为它服务。而大部的餐馆的服方式都不是一对一的,当你走进的时侯,你就被指定了一个waiter,她也可能为其它桌服着务,这对于餐馆来说是最有利的,因为他们可以服务更多的客人而不需要增加他们的员工。这样对你来说也可能是不错的,如果餐馆不是太忙,她服务的客人的请求都很简短且容易完成,你的感觉也好像自己拥有一个专门的waiter,waiter把你的ORDER转给厨师,然后把做好的菜拿给你,这就是MTS的处理方式,这些共享的waiters我们叫她们为Dispatchers,厨师我们则叫他们为Shared Server Processes。
假设ORACLE是一家餐馆,当你走进一家餐馆时你感觉最舒服的服务方式就是有一个专门的waiter来为你服务,而不管餐馆中来了多少人,她只对你请求应答,这是DEDICTE的处理方式,也就是说每一个ORACLE客户端的连接都有一个专门的服务进程来为它服务。而大部的餐馆的服方式都不是一对一的,当你走进的时侯,你就被指定了一个waiter,她也可能为其它桌服着务,这对于餐馆来说是最有利的,因为他们可以服务更多的客人而不需要增加他们的员工。这样对你来说也可能是不错的,如果餐馆不是太忙,她服务的客人的请求都很简短且容易完成,你的感觉也好像自己拥有一个专门的waiter,waiter把你的ORDER转给厨师,然后把做好的菜拿给你,这就是MTS的处理方式,这些共享的waiters我们叫她们为Dispatchers,厨师我们则叫他们为Shared Server Processes。
二、MTS架构
[metalink-Note:29038.1]
1. Oracle Multi-Threaded Server Architecture.
----------------------------------------------
+-----------+ user
+-----------+| processes
| ||
|APPLICATION||
| CODE ||
| |+
+-----------+
/|\
| CLIENT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| SERVER
\|/
+----------------------------------+
+----------------------------------+|
| ||
| DISPATCHER PROCESSES ||
| |+
+----------------------------------+
| /|\
| |
| +-----------+ |
| +-----------+| shared |
| +-----------+|| server |
| | ORACLE ||+ processes |
| |SERVER CODE|+ |
| +-----------+ |
| /|\ /|\ | |
| | | | |
| | | | |
| | \|/ | |
+---------------|-----|-------|----------------|-------+
| \|/ | \|/ | |
| +-------------------+ +----------------------+ |
| | REQUEST | | RESPONSE QUEUES | |
| | QUEUES | +----------------------+ |
| +-------------------+ |
| SYSTEM GLOBAL AREA |
| |
+------------------------------------------------------+
Client Connections to MTS
~~~~~~~~~~~~~~~~~~~~~~~~~
A client process wanting to connect to an Oracle instance using MTS
should go through the following steps:
----------------------------------------------
+-----------+ user
+-----------+| processes
| ||
|APPLICATION||
| CODE ||
| |+
+-----------+
/|\
| CLIENT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| SERVER
\|/
+----------------------------------+
+----------------------------------+|
| ||
| DISPATCHER PROCESSES ||
| |+
+----------------------------------+
| /|\
| |
| +-----------+ |
| +-----------+| shared |
| +-----------+|| server |
| | ORACLE ||+ processes |
| |SERVER CODE|+ |
| +-----------+ |
| /|\ /|\ | |
| | | | |
| | | | |
| | \|/ | |
+---------------|-----|-------|----------------|-------+
| \|/ | \|/ | |
| +-------------------+ +----------------------+ |
| | REQUEST | | RESPONSE QUEUES | |
| | QUEUES | +----------------------+ |
| +-------------------+ |
| SYSTEM GLOBAL AREA |
| |
+------------------------------------------------------+
Client Connections to MTS
~~~~~~~~~~~~~~~~~~~~~~~~~
A client process wanting to connect to an Oracle instance using MTS
should go through the following steps:
a) Call the listener
b) The listener tells it to call back on the address where
the dispatcher is listening (a REDIRECT)
c) The client calls the dispatcher and establishes a connection.
d) The dispatcher now has a CLIENT connection ESTABLISHED and
will also continue to listen for any new connections.
e) The client sends a SQL message to the dispatcher.
f) The dispatcher unwraps this message packet and places the
request onto a queue in the SGA (System Global Area).
This queue has NOTHING to do with SQL*Net. The SQL*Net
layer ends in the dispatcher.
g) A shared server will pick up the request from the SGA queue
and process it. When there is any result this is placed
on a separate queue in the SGA ready for the dispatcher.
h) The dispatcher picks up the response message from the SGA
and wraps this into a SQL*Net message. This is passed
back to the client.
b) The listener tells it to call back on the address where
the dispatcher is listening (a REDIRECT)
c) The client calls the dispatcher and establishes a connection.
d) The dispatcher now has a CLIENT connection ESTABLISHED and
will also continue to listen for any new connections.
e) The client sends a SQL message to the dispatcher.
f) The dispatcher unwraps this message packet and places the
request onto a queue in the SGA (System Global Area).
This queue has NOTHING to do with SQL*Net. The SQL*Net
layer ends in the dispatcher.
g) A shared server will pick up the request from the SGA queue
and process it. When there is any result this is placed
on a separate queue in the SGA ready for the dispatcher.
h) The dispatcher picks up the response message from the SGA
and wraps this into a SQL*Net message. This is passed
back to the client.
三、确定你的DB是否在使用MTS
[metalink-Note:1071305.6]
Solution Description:
=====================
Look at the "init.ora" parameter MTS_DISPATCHERS.
MTS_DISPATCHERS defines the number of dispatchers created when the instance
starts up. If this is set to zero, or is null (default value), then you are NOT
using MTS.
=====================
Look at the "init.ora" parameter MTS_DISPATCHERS.
MTS_DISPATCHERS defines the number of dispatchers created when the instance
starts up. If this is set to zero, or is null (default value), then you are NOT
using MTS.
If MTS_DISPATCHERS is greater than zero, then check these other "init.ora"
parameters for valid values:
parameters for valid values:
MTS_MAX_DISPATCHERS Maximum number of dispatchers
MTS_SERVERS Number of server processes created at startup
MTS_MAX_SERVERS Maximum number of shared server processes
MTS_SERVICE SID
MTS_LISTENER_ADDRESS Configuration of the listener
MTS_SERVERS Number of server processes created at startup
MTS_MAX_SERVERS Maximum number of shared server processes
MTS_SERVICE SID
MTS_LISTENER_ADDRESS Configuration of the listener
Solution Explanation:
=====================
These other "init.ora" parameters may have valid values, but if MTS_DISPATCHERS
is zero or null, MTS is not being used.
=====================
These other "init.ora" parameters may have valid values, but if MTS_DISPATCHERS
is zero or null, MTS is not being used.
四、MTS相关参数的含义
[metalink-Note:29038.1]
The main parameters required to start MTS are:
o MTS_SERVICE - This parameter establishes the name of the MTS service
that clients connect to, in order for the dispatchers to handle requests.
o MTS_DISPATCHERS - Dispatchers are detached processes that handle client
process requests and communicate them to server processes for execution.
that clients connect to, in order for the dispatchers to handle requests.
o MTS_DISPATCHERS - Dispatchers are detached processes that handle client
process requests and communicate them to server processes for execution.
This parameter defines the number of dispatchers to startup for
each protocol that is configured for MTS. For example,
mts_dispatchers = "ipc, 2"
each protocol that is configured for MTS. For example,
mts_dispatchers = "ipc, 2"
o MTS_SERVERS - This is the number of shared server processes that
start at instance startup time. Shared servers service the
client requests passed on to them by the dispatchers.
start at instance startup time. Shared servers service the
client requests passed on to them by the dispatchers.
o MTS_LISTENER_ADDRESS - This is the full address for dispatchers to listen
on, and is the same as the address configured in the TNS listener. The
address specification is protocol-specific. For example:
on, and is the same as the address configured in the TNS listener. The
address specification is protocol-specific. For example:
mts_listener_address = "(address=(protocol=ipc)(key=sw))"
五、使用MTS连接DB
先在主机命令行 $ lsnrctl services;
"D000" established:0 refused:0 current:1 max:972 state:ready
DISPATCHER <machine: db1, pid: 3950>
(ADDRESS=(PROTOCOL=tcp)(HOST=eagle1)(PORT=33166));
DISPATCHER <machine: db1, pid: 3950>
(ADDRESS=(PROTOCOL=tcp)(HOST=eagle1)(PORT=33166));
查看dispather的监听端口号——33166。(dispather进程名称一般是 ora_dNNN_SID,NNN in (000-999))
在client端的tnsname.ora中,注意:
TODB_MTS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 33166))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = dbname)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 33166))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = dbname)
)
)
这样可以解决ora-12520问题(当然这只是解决方法之一)
六、一问一答
Q:MTS一定比Delicated模式好吗?
A:不是。如果硬件好点,建议使用Delicated模式。biti语录:“我是能不用MTS就不用”
Q:MTS与Delicated模式可以相互转换吗?
A:可以。
MTS => Delicated
Reset the MTS Parameters in init.ora and reopen your DB.
Delicated => MTS
Added the MTS Parameters in init.ora and reopen your DB.
Q:MTS模式下可以用Delicated连进来吗?
A:可以。(SERVER = Delicated)即可。反之则不行。
Q:RAC环境一定得是MTS吗?
A:不是。
Q:JDBC thin 支持MTS吗?
A:目前不支持。
发表评论
-
数据库设计规范
2011-11-24 10:40 6871数据库设计(Database Desi ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2898首先,去oracle官网下载C ... -
PowerDesigner快捷键
2011-03-19 00:10 1098一般快捷键F4 打开检查模型窗口,检查模型F5 如果图 ... -
oracle和sql server功能对比
2011-01-05 22:05 1809Oracle Database 10g对比SQL Server ... -
Parse CPU to Parse Elapsd%的理解
2010-11-28 18:37 6760Parse CPU to Parse Elapsd%是指sql ... -
DB2客户端连接服务端的方法(转载)
2010-07-14 22:40 910在DB2中从客户端访问服 ... -
四大数据库的比较(SQL Server、Oracle、Sybase和DB2)
2010-07-14 21:54 1526本篇引用于公司数据库 ... -
Oracle迁移到DB2常用转换
2010-07-01 13:12 1148因为项目需要,要将Oracle上的东西转移到DB2,于是收集整 ... -
输出object的DDL的方法
2010-06-23 01:07 1426最近一段时间,由于经常要通过ssh访问远程环境。所以图形工具使 ... -
oracle的license和正版使用问题
2010-06-08 01:08 19411, 正版Oracle 产品和盗版的区别 直奔主题,这是许多研 ... -
oracle opatch 工具的使用(oracle小补丁安装)(转)
2010-05-30 13:49 2251从9.2版开始,Oracle公司设计实现了个别补丁安装管理工具 ... -
mysql常用函数
2009-12-29 10:25 951一、数学函数ABS(x) ... -
SP2-0618和_SP2-0611错误处理
2009-12-27 23:48 1066AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 ... -
几分钟学会Oracle Audit
2009-12-03 15:49 21591、什么是审计 简单来讲,就是把对数据库的操作记录下来。不管 ... -
alter system switch logfile和alter system archive log current的区别
2009-12-03 12:19 1105alter system switch logfile 是强制 ... -
由HWM引出的drop,delete,truncate的异同点比较
2009-12-02 14:18 1233今天在做HWM时,说truncate表后HWM会降低,但是dr ... -
主流数据库的比较
2009-12-02 10:29 1285开发数据库应用,选择一个好的数据库是非常重要的。目前, 商品 ... -
10g: SYSAUX 里面都有些什么东西
2009-09-04 12:38 1826Isabella says:SYSAUX 暴涨有 ... -
ORACLE的PL/SQL一
2009-08-26 17:03 1146一、什么是PL/SQL? P ... -
Oracle中password file的作用及说明
2009-08-21 21:19 1048在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份 ...
相关推荐
这包括删除Oracle相关的系统变量,如ORACLE_HOME、PATH等,以及停止和删除与Oracle相关的Windows服务。此外,还应检查用户账户控制设置,确保有足够的权限进行安装。 在重新安装过程中,安装程序会引导你完成一系列...
此版本不支持 Pro*C/C++和.NET程序所需的Oracle Provider for OLE DB,如需支持上述功能,请访问并下载ODAC(Oracle Data Access Components,其包含 ODP.NET, Oracle Services for MTS, Oracle Providers for ASP...
如果你计划使用多线程服务器(MTS)架构,你需要配置Oracle MTS Recovery Services,以确保在MTS环境下的事务恢复。 10. **摘要** 在这一步,安装程序会展示你所选择的所有配置选项,确认无误后点击“安装”进行...
- **OracleMTSRecoveryService**:Oracle MTS Recovery Service是用于处理多线程服务器模式下的异常任务恢复的服务。 - **OracleOraDb11g_home1TNSListener**:这是Oracle TNS监听器服务,负责监听来自客户端的连接...
- **OracleServices for Microsoft Transaction Server**:在此步骤中,您可以设置Oracle MTS Recovery服务程序的监听端口,默认为2030,通常不需要更改。 - **数据库标识**:设置Oracle全局数据库名和Oracle系统...
多线程服务器(MTS)是Oracle数据库的一种优化策略,考生需要了解MTS的架构,如何通过init.ora文件配置消息服务和共享服务器,以及如何指定监听地址和建立连接池,以提高服务器性能和资源利用率。 **第八部分:...
打开服务,查看 Oracle 相关四个进程,三个正在运行即可,TNS 监听,OracleServiceORCL 单实例,和 MTS 正在运行即可,vss 状态无所谓。 七、配置 TNSnames.ora 找到 tnsnames.ora 文件,并增加刚才创建的 pdb,...
这些模拟试题可以帮助考生熟悉考试格式和常见问题,提升对Oracle基础知识的理解,如SQL语法、数据库管理、表空间管理等。 接下来,"uknow.rar"是一个未解压的文件,通常RAR是一种压缩文件格式,用于打包多个文件或...
Oracle数据库在启动过程中可能会遇到各种报错,这些错误通常是由于配置问题、资源限制或是系统级设置不当导致的。本文将详细解析ORACLE启动报错的常见问题及其解决方案。 首先,针对ORA-12500:“TNS:监听程序无法...
Oracle MTS是Oracle的一种多线程服务器模式,用于提高并发处理能力。在安装时,你需要根据预期的工作负载和资源来决定是否启用MTS。 ### 总结 Oracle9i的安装是一个系统性的工作,涉及到多个步骤和配置。正确地...
- **解释**:这通常表示Oracle内部出现了问题,可能是由于软件缺陷导致的。 ### 00020,0,"(%s)" - **含义**:格式化的错误信息。 - **解释**:这种错误信息通常包含了动态插入的参数,如具体的对象名等。 ### ...
- **MTS(多线程服务器)**:配置Oracle MTS提高性能的方法。 - **调整**:根据实际需求调整数据库参数来优化性能。 #### 六、版本更新记录 - **2000/07**:版本1.0发布。 - **2000/09**:版本1.1,增加了Linux...
尽管题目给出的部分内容主要聚焦于ASP(Active Server Pages)的内嵌对象及其使用方法,但基于题目要求,本文将围绕"Oracle XML核心技术"这一主题展开讨论,同时也会简要提及ASP的相关知识点以确保内容的完整性和准确性。...
Oracle Services for MTS是Oracle与Microsoft Transaction Server (MTS)集成的关键,它允许Oracle数据库作为MTS分布式事务的一部分。配置Oracle Services for MTS后,可以使得COM组件在参与MTS交易时通过Oracle进行...
这些服务包括Oracle VSS Writer Service、Oracle DBConsole、Oracle Job Scheduler、Oracle MTS Recovery Service、***扩展服务的一部分(如OracleOraDb11g_home1ClrAgent),以及Oracle监听器服务(OracleOraDb11g_...
在Oracle数据库的连接配置方面,主要有三种连接方式,分别是组合用户与服务器结构、专用服务器(Dedicated Server)结构以及多线程服务器(Multithreaded Server,MTS)体系结构。 1) **组合用户与服务器结构**: ...
除了以上提及的特性之外,还支持Oracle 8和Oracle 8i特性,如LOB定位、对象和参考、XML TYPE、时间戳、滚动查询、密码到期、外部程序开发以及MTS Oracle服务等。 主要功能: 按范例查询模式 ——TOracleDataSet组件...
在使用共享服务器模式(MTS)时,一部分PGA(即UGA)会被放入大型池(Large Pool)中。 ##### 2.2 内存参数的差异性 冯春培指出,在查询`v$parameter`、`v$sgastat`、`v$sga`等视图时,会发现它们之间存在差异。这些...