IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Oracle MTS模式下 进程地址与会话信息

Oracle Life 2010-11-01 19:56:17 累计浏览 14,409 次
本机暂存
    前几天在客户现场,检查一个数据库时发现在OS上根本没有明确的数据库连接,但是在数据库内部却可以看到会话信息。

    想了一会,才明白过来,原来这是一个MTS系统,共享服务器模式已经很久没有遇到了,几乎忘却了。

    在检查会话信息时,你会发现,用户进程的进程地址PADDR是相同的,都是812960DC :

    SQL> select paddr,sid,username,osuser,process,terminal,machine,logon_time from v$session;

    PADDR           SID USERNAME   OSUSER     PROCESS      TERMINAL        MACHINE                        LOGON_TIME

    -------- ---------- ---------- ---------- ------------ --------------- ------------------------------ -------------------

    8129301C          1            oracle     6568         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:07

    812933DC          2            oracle     6570         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:08

    8129379C          3            oracle     6573         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:08

    81293B5C          4            oracle     6576         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    81293F1C          5            oracle     6578         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    812942DC          7            oracle     6580         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    8129469C          9            oracle     6582         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    81294A5C         10            oracle     6584         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    81294E1C         11            oracle     6586         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    812951DC         12            oracle     6588         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    8129559C         13            oracle     6590         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    PADDR           SID USERNAME   OSUSER     PROCESS      TERMINAL        MACHINE                        LOGON_TIME

    -------- ---------- ---------- ---------- ------------ --------------- ------------------------------ -------------------

    8129595C         14            oracle     6592         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:11

    812960DC         15 EYGLE      eyg        3572:220     EYGLEE          EYGLEENMO\\EYGLEE               2010-10-28 09:04:14

    812960DC         16 EYGLE      eyg        1804:3708    EYGLEE          EYGLEENMO\\EYGLEE               2010-10-28 09:04:19

    8129685C         17            oracle     6611         UNKNOWN         EYGLEORACLE1                   2010-09-27 11:39:13

    81295D1C         20 EYGLE      root                    unknown         EYGLEWEB1                      2010-10-28 07:45:30

    812960DC         24 EYGLE      root                    unknown         EYGLEWEB1                      2010-10-28 09:11:13

    812960DC         30 EYGLE      eyg        3296:2968    EYGLEE          EYGLEENMO\\EYGLEE               2010-10-28 09:04:22

    812960DC         31 EYGLE      root                    unknown         EYGLEWEB1                      2010-10-28 08:21:09

    812960DC         32 EYGLE      root                    unknown         EYGLEWEB1                      2010-10-28 09:13:45

    812960DC         33 EYGLE      oracle     721122                       oracle2                        2010-10-13 13:34:13

    8129649C         35 SYS        oracle     23221        pts/1           EYGLEORACLE1                   2010-10-28 09:24:21

    而 812960DC  进程正是Dispatcher进程 oracle@EYGLEORACLE1 (D000)

    SQL> select addr,spid,program from v$process;

    ADDR     SPID         PROGRAM

    -------- ------------ ------------------------------------------------

    81292C5C              PSEUDO

    8129301C 6568         oracle@EYGLEORACLE1 (PMON)

    812933DC 6570         oracle@EYGLEORACLE1 (DIAG)

    8129379C 6573         oracle@EYGLEORACLE1 (LMON)

    81293B5C 6576         oracle@EYGLEORACLE1 (LMD0)

    81293F1C 6578         oracle@EYGLEORACLE1 (LMS0)

    812942DC 6580         oracle@EYGLEORACLE1 (LMS1)

    8129469C 6582         oracle@EYGLEORACLE1 (DBW0)

    81294A5C 6584         oracle@EYGLEORACLE1 (LGWR)

    81294E1C 6586         oracle@EYGLEORACLE1 (CKPT)

    812951DC 6588         oracle@EYGLEORACLE1 (SMON)

    ADDR     SPID         PROGRAM

    -------- ------------ ------------------------------------------------

    8129559C 6590         oracle@EYGLEORACLE1 (RECO)

    8129595C 6592         oracle@EYGLEORACLE1 (CJQ0)

    81295D1C 6594         oracle@EYGLEORACLE1 (S000)

    812960DC 6596         oracle@EYGLEORACLE1 (D000)

    8129649C 23222        oracle@EYGLEORACLE1 (TNS V1-V3)

    8129685C 6611         oracle@EYGLEORACLE1 (LCK0)

    81296FDC 9955         oracle@EYGLEORACLE1 (S003)

    而通过监听器也可以看到,数据库所有的连接都来自Dispatcher,没有Dedicated模式的连接建立:

    [oracle@EYGLEORACLE1 log]$ lsnrctl service

    LSNRCTL for Linux: Version 9.2.0.7.0 - Production on 28-OCT-2010 09:38:51

    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jgzx1)(PORT=1521)))

    Services Summary...

    Service "PLSExtProc" has 1 instance(s).

     Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

     Handler(s):

     "DEDICATED" established:0 refused:0

     LOCAL SERVER

    Service "jgzx" has 2 instance(s).

     Instance "jgzx1", status READY, has 3 handler(s) for this service...

     Handler(s):

     "DEDICATED" established:0 refused:0 state:ready

     REMOTE SERVER

     (ADDRESS=(PROTOCOL=TCP)(HOST=jgzx1)(PORT=1521))

     "DEDICATED" established:0 refused:0 state:ready

     LOCAL SERVER

     "D000" established:117664 refused:0 current:21 max:1002 state:ready

     DISPATCHER

     (ADDRESS=(PROTOCOL=tcp)(HOST=jgzx1)(PORT=32812))

     Instance "jgzx2", status READY, has 2 handler(s) for this service...

     Handler(s):

     "DEDICATED" established:0 refused:0 state:ready

     REMOTE SERVER

     (ADDRESS=(PROTOCOL=TCP)(HOST=jgzx2)(PORT=1521))

     "D000" established:114273 refused:0 current:18 max:1002 state:ready

     DISPATCHER

     (ADDRESS=(PROTOCOL=tcp)(HOST=jgzx2)(PORT=32784))

    Service "jgzx1" has 1 instance(s).

     Instance "jgzx1", status UNKNOWN, has 1 handler(s) for this service...

     Handler(s):

     "DEDICATED" established:0 refused:0

     LOCAL SERVER

    The command completed successfully

    由此,MTS模式的特点显而易见,其减少进程可以缩减系统的资源消耗,但是显然会导致排队,并不适用于对响应时间要求较高的OLTP系统。原图已失效

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼 (累计阅读 6,880)
  2. 性能测试工具sysbench简介 (累计阅读 6,027)
  3. 大于2GB的Listener.log和运行超过198天的主机上的Oracle实例 (累计阅读 5,863)
  4. 仅仅只备份是不够的 (累计阅读 5,825)
  5. Oracle Database 12c 新特性 - Native Top N 查询 (累计阅读 5,751)
  6. ORACLE最大可以存储多少数据量 (累计阅读 5,729)
  7. Oracle DBA的学习进阶成长树-从初出茅庐到高瞻远瞩 (累计阅读 5,603)
  8. 老托的Oracle 数据库Patch概念性小常识 (累计阅读 5,549)
  9. 查看oracle数据库用户下的所有空表 (累计阅读 5,505)
  10. ORACEL RAC 字符集 (累计阅读 5,435)