株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

DEDICATED_THROUGH_BROKER_listener_nameでリモート接続時におけるサーバープロセスをマルチスレッド化

THREADED_EXECUTION によるOracleインスタンスのマルチスレッド化では、すべての Oracleプロセスがマルチスレッド化されるわけではありません。バックグラウンドプロセスDBWn、 PMON、 PSP、 VKTMや、リモート接続により生成されたサーバープロセスはマルチスレッド化されません。

[oracle@l63x64a ~]$ sqlplus sys/password as sysdba
  : 
SYS@c101##c101> SELECT s.username,
  2         s.sid,
  3         s.serial#,
  4         p.program,
  5         p.spid,
  6         ps.command,
  7         p.stid
  8  FROM   v$session s,
  9         v$process p, ps
 10  WHERE  s.paddr = p.addr
 11    AND  ps.pid = spid
 12    AND  s.sid = (SELECT distinct sid FROM V$MYSTAT);

USERNAME                SID    SERIAL# PROGRAM                  SPID                     COMMAND                  STID
---------------- ---------- ---------- ------------------------ ------------------------ ------------------------ ------------------------
SYS                      64        339 oracle@l63x64a.domain    13524                    ora_u005_c101            19333

[oracle@l63x64a ~]$ sqlplus sys/oracle@c101 as sysdba
  : 
SYS@c101##c101> SELECT s.username,
  2         s.sid,
  3         s.serial#,
  4         p.program,
  5         p.spid,
  6         ps.command,
  7         p.stid
  8  FROM   v$session s,
  9         v$process p, ps
 10  WHERE  s.paddr = p.addr
 11    AND  ps.pid = spid
 12    AND  s.sid = (SELECT distinct sid FROM V$MYSTAT);

USERNAME                SID    SERIAL# PROGRAM                  SPID                     COMMAND                  STID
---------------- ---------- ---------- ------------------------ ------------------------ ------------------------ ------------------------
SYS                      64        357 oracle@l63x64a.domain    20108                    oraclec101               20108

listener.oraに DEDICATED_THROUGH_BROKER_[リスナー名]=on を指定することで、リモート接続により生成されたサーバープロセスをマルチスレッド化できます。

[oracle@l63x64a ~]$ vi $ORACLE_HOME/network/admin/listener.ora
[oracle@l63x64a ~]$ diff $ORACLE_HOME/network/admin/listener.ora{,.BK}
11d10
< DEDICATED_THROUGH_BROKER_LISTENER=on
[oracle@l63x64a ~]$ lsnrctl reload

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 05-8月 -2013 03:24:38

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=l63x64a.domain)(PORT=12101)))に接続中
コマンドは正常に終了しました。
[oracle@l63x64a ~]$ sqlplus sys/oracle@c101 as sysdba
  : 
SYS@c101##c101> SELECT s.username,
  2         s.sid,
  3         s.serial#,
  4         p.program,
  5         p.spid,
  6         ps.command,
  7         p.stid
  8  FROM   v$session s,
  9         v$process p, ps
 10  WHERE  s.paddr = p.addr
 11    AND  ps.pid = spid
 12    AND  s.sid = (SELECT distinct sid FROM V$MYSTAT);

USERNAME                SID    SERIAL# PROGRAM                  SPID                     COMMAND                  STID
---------------- ---------- ---------- ------------------------ ------------------------ ------------------------ ------------------------
SYS                      64        361 oracle@l63x64a.domain    13524                    ora_u005_c101            20420

リスナーを再起動せずに設定を反映できるようです。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ