查看: 3267|回复: 5

有共享服务环境数据库的兄弟帮我看看,你们的情况是否和我一样

[复制链接]
论坛徽章:
17
授权会员
日期:2005-10-30 17:05:33优秀写手
日期:2014-03-20 06:00:352013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:38:442010新春纪念徽章
日期:2010-03-01 11:05:00生肖徽章2007版:马
日期:2009-11-03 13:55:02祖国60周年纪念徽章
日期:2009-10-09 08:28:00
跳转到指定楼层
1#
发表于 2008-2-19 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
配置参数:
SQL> show parameter shared;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
max_shared_servers                   integer     4
shared_memory_address                integer     0
shared_pool_reserved_size            big integer 17616076
shared_pool_size                     big integer 0
shared_server_sessions               integer     200
shared_servers                       integer     1

SQL> show parameter dispatch ;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=tcp)(DISPATCHERS=4)(POOL=on)(TICK=3)(CONNECTIONS=500)

(SESSIONS=1000)
max_dispatchers                      integer     4


用pl/sql developer 连接:
SQL> connect test/test@BANK_shs ;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as test

SQL> select distinct sid from v$mystat;

       SID
----------
       158
可以看到为SHARED模式。
SQL> select sid,server,machine from v$session where sid=158;

       SID SERVER    MACHINE
---------- --------- ----------------------------------------------------------------
       158 SHARED    BANK

SQL>

但是用同样的服务名连接,启动一个测试程序:
SQL> select sid,machine ,server ,program from v$session where PROGRAM='test.exe';

       SID MACHINE                   SERVER    PROGRAM
---------- ------------------------- --------- ------------------------------
       146 BANK                      NONE      test.exe

为什么连接后的 SERVER为NONE  而不是SHARED    ?
论坛徽章:
24
授权会员
日期:2006-12-23 13:14:362008新春纪念徽章
日期:2008-02-13 12:43:03数据库板块每日发贴之星
日期:2008-02-16 01:05:15ITPUB元老
日期:2008-02-19 22:12:27行业板块每日发贴之星
日期:2008-02-29 01:06:00开发板块每日发贴之星
日期:2008-03-03 01:05:35ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41紫蛋头
日期:2012-11-28 16:41:42
2#
发表于 2008-2-20 08:18 | 只看该作者
应该确认test应用程序是否用到了服务命名.

[ 本帖最后由 烟囱 于 2008-2-20 08:34 编辑 ]

使用道具 举报

回复
论坛徽章:
24
授权会员
日期:2006-12-23 13:14:362008新春纪念徽章
日期:2008-02-13 12:43:03数据库板块每日发贴之星
日期:2008-02-16 01:05:15ITPUB元老
日期:2008-02-19 22:12:27行业板块每日发贴之星
日期:2008-02-29 01:06:00开发板块每日发贴之星
日期:2008-03-03 01:05:35ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41紫蛋头
日期:2012-11-28 16:41:42
3#
发表于 2008-2-20 08:33 | 只看该作者
BTW:SERVER=NONE也可以表示是共享服务器连接.
查看一下v$circuit视图,看看有多少个共享session连接进来也比较直观.

使用道具 举报

回复
论坛徽章:
57
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010新春纪念徽章
日期:2010-03-01 11:21:02
4#
发表于 2008-2-20 11:39 | 只看该作者
server列是“none”,那么这个连接就是共享连接!

使用道具 举报

回复
论坛徽章:
59
狮子座
日期:2016-03-26 13:35:402013年新春福章
日期:2013-02-25 14:51:24双黄蛋
日期:2013-02-25 11:06:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20灰彻蛋
日期:2012-04-25 13:19:33紫蛋头
日期:2012-03-14 11:16:09最佳人气徽章
日期:2012-03-13 17:39:18玉石琵琶
日期:2012-02-21 15:04:38鲜花蛋
日期:2011-11-30 14:13:01ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
5#
发表于 2008-2-20 12:01 | 只看该作者
嘿嘿如果是none的话那就对了,说明此会话当前应该什么事也没干,应该是inactive
随便新开个会话做个大操作,在完成之前查询v$session就可以看到为server为shared

使用道具 举报

回复
论坛徽章:
57
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010新春纪念徽章
日期:2010-03-01 11:21:02
6#
发表于 2008-2-20 12:29 | 只看该作者
查看v$session
server = 'DEDICATED'则是DEDICATED方式
server='SHARED'则是shared方式,并且正有shared_server_process为其服务
server='NONE'的话,则是shared方式,并且当前没有shared_server_process为其服务。
unix下:
select p.program,s.server,s.sid from v$session s , v$process p
where s.paddr = p.addr
如果 program 为...(S0NN) 的,则是shared方式,并且正有shared_server_process为其服务
如果 program 为...(D0NN) 的,则是shared方式,并且当前没有shared_server_process为其服务
如果 program 为 其它的,则是'DEDICATED'方式


从客户端连接并查询,查询过程中肯定有shared_server_process为其服务,所以状态为SHARED:


SQL> select sid from v$mystat where rownum=1;

       SID
----------
       792


SQL> select server from v$session where sid=792;

SERVER
------------------
SHARED



[ 本帖最后由 zhouwf0726 于 2008-2-20 12:31 编辑 ]

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表