网志中国数据载入中...

他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的,但变幻无常更为美丽
网志中国数据载入中...

留言簿

公告

最新日志

最新评论

搜索

登陆

友情连接

统计

2007-1-11 15:02:00
oracle共享服务器监听注册方法实现调度器与监听的注册
     在配置将oracle9i的专用服务器配置成共享服务器时,设置了几个oracle共享服务器必要的参数后:
dispatchers                          string      (protocol=tcp)(dispatchers=3)
max_dispatchers                 integer     5
sessions                              integer     170
shared_server_sessions     integer     165
shared_servers                   integer     8
max_shared_servers           integer     20
重新启动数据库!通过查看几张性能视图表,确认已经完成了共享服务器的设置。
通过查看监听的services:lsnrctl services listener
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sdb)(PORT=41521)))
服务摘要..
服务 "sdb" 包含 1 个例程。
  例程 "sdb", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:2 已被拒绝:0
         LOCAL SERVER
命令执行成功

发现并没有任务调度器被注册,例程的状态为unknown!
上网查看了之后发现是由于监听使用了静态注册才会是unknown的状态。
修改了多次监听和配置参数后都没能成功。
上网查了一上午的资料也没能明白为什么不能注册调度器,此时用本地客户端(server = shared)的tns连接始终会报ora-12523这个错,但是(server = DEDICATED)的tns专用连接却能连得上数据库。
由于调度器始终没有注册上,因些共享服务器的配置始终有问题。
如何才能实现调度器在监听上的注册呢?用baidu找了很多资料都没能修改成功,最后找到这样一篇文章才知道问题所在:http://www.cublog.cn/u/7667/showart.php?id=162618
原来oracle服务在注册到监听器是默认到1521端口的,如果没有注册上则监听的状态始终会为unknow状态,不过客户端通过tns的配置专用服务请求还是能找到相应的数据服务的,但是共享服务就没有办法了,因为端口不是默认的1521,因此共享服务器的调度器dispatcher找不到监听所在的端口41521,因此找不到调度服务,至使与监听不能互相通信。
上面连接就讲了如何让oracle服务注册到特殊的监听端口。
其实很简单:
在oracle数据库服务器上配置上本地的oracle的tnsname连接。
sdb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sdb)(PORT =41521))
    )
    (CONNECT_DATA =
      (SID = sdb)
      (SERVER = DEDICATED)
    )
  )
然后修改参数:
alter system set local_listener = "sdb";
alter system register;
之前local_listener是为空的,此时本地oracle服务就知道可以通过sdb这个tnsname到本地的监听服务器进行注册,状态变成了ready,这时调度器也一并被进行了注册。
至此共享服务器的配置就成功了!客户端用(server = shared)连接也不会报错了!
posted @ 2007-1-11 15:02:00 youkey 阅读全文 | 回复(0) | 引用通告 | 编辑
  • 标签:ora-12523 listener dispatcher 调度 共享服务器 
  • 发表评论:
    网志中国数据载入中...