OCM考试-listener


启动侦听:

cp一个sample中的listener.ora
去掉以下行的注释:
 LISTENER =
  (ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
        (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
这样可以通过动态注册侦听实现service的注册(启动侦听后大约1分钟)。
 
如果要实现的时候静态注册,建议稍作修改:
LISTENER =
 (ADDRESS_LIST=
   (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
  )
 
SID_LIST_LISTENER=
    (SID_LIST=
      (SID_DESC=
        (SID_NAME=ocmdb)
        (ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1)
       )
     )

这里需要注意的是SID_LIST_LISTENER部分,里面可能还有空格之类的东西,把该行前面的空格删除,再整理下格式,就可以了。

如果遇到以下报错:

[oracle@ocmdb1 admin]$ lsnrctl start
 
LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 20-NOV-2009 19:15:13
 
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
 
Starting /oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
 
TNS-12537: TNS:connection closed
 TNS-12560: TNS:protocol adapter error
  TNS-00507: Connection closed
   Linux Error: 29: Illegal seek

检查/etc/hosts中是否有127.0.0.1 localhost

tnsnames.ora的配置,在smaples里面的那个比较难看,可以用在线文档的 Net Services Administrator’s Guide-8 Configuring Naming Methods-About Connect Descriptors里面的第二个例子:

sales=
 (DESCRIPTION=
  (ADDRESS= (PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
  (CONNECT_DATA=
     (SERVICE_NAME=sales.us.acme.com)))

其他知识点:
Configure the database instance to support shared server connections:
1、修改参数
2、使shared server生效
3、配置dispatcher

1、修改参数,需要修改以下6个参数,其中,最重要的shared_servers和dispatchers,这2个参数是必改的,就是shared server模式了。

SQL> show parameter shared_server
 
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
max_shared_servers                   integer--最多的shared server 进程
shared_server_sessions               integer--分配给shared server的进程数
shared_servers                       integer                0--初始化的shared server进程
SQL>
 
SQL> show parameter dispatch
 
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
dispatchers                          string--dispatcher的配置
max_dispatchers                      integer--目前没用,以后的版本用
 
 
SQL> show parameter cir
 
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
circuits                             integer--进站和出站的网络会话的虚拟线路的数量
SQL>
 
因此我们配置如下:
SQL> show parameter dispatchers
 
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
dispatchers                          string                 (PROTOCOL=TCP)(dispatchers=3)
max_dispatchers                      integer
SQL>
SQL>
SQL>
SQL> show parameter shared_server
 
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
max_shared_servers                   integer                0
shared_server_sessions               integer                0
shared_servers                       integer                5
SQL>

下面解说下samples下的listener.ora中的其他参数:
# #PRESPAWN CONFIG
# (PRESPAWN_MAX=20)
# (PRESPAWN_LIST=
# (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
以上参数在8i中出现过,10g中不再使用。

# PASSWORDS_LISTENER = 20A22647832FB454 # “foobar”
为listener设置密码后,就会出现这行,设置的方法是
lsnrctl
change_password
输入密码,确认密码
set password
输入密码
save_config

# SAVE_CONFIG_ON_STOP_LISTENER = ON
将侦听设置成默认的关闭保存

注意:设置shared server的时候,要求service状态为ready,如果使用了静态注册,需要稍等1分钟,等待动态注册到侦听,或者直接在数据库中运行以下sql:
SQL > alter system register;
如果ready没起来,会报错:

ERROR:
ORA-12523: TNS:listener could not find instance appropriate for the client
connection

· 【文章发布信息】发表于: 2009-12-15 @ 23:10:15 · ||分类: Study note

2 条评论 »

  1. 外贸主机 于 2009-12-24 @ 13:52:08 留言

    Oracle我不是很动。。。以后经常来学习学习。

  2. luolongjiu 于 2010-01-01 @ 13:27:35 留言

    新年快乐
    身体健康。。。
    dba就这几个

RSS 为此帖反馈评论 · 反向跟踪 网站

留条评论