启动侦听:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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部分,里面可能还有空格之类的东西,把该行前面的空格删除,再整理下格式,就可以了。
如果遇到以下报错:
1 2 3 4 5 6 7 8 9 10 11 12 |
[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里面的第二个例子:
1 2 3 4 5 |
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模式了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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没起来,会报错:
1 2 3 |
ERROR: ORA-12523: TNS:listener could not find instance appropriate for the client connection |
3条评论
Oracle我不是很动。。。以后经常来学习学习。
新年快乐
身体健康。。。
dba就这几个
监听这部分,还需要配置2个监听,一个自动的,一个手动的,自动的是在非默认端口,需要设置local_listenrer 为了证书而考试,收获还是有的。呵呵