LOCAL_LISTENER 引起的错误

1. 如果你的LOCAL_LISTENER 指定的是一个别名 比如L2

*.local_listener='L2'

启动实例的时候 会先到 tnsnames.ora 文件里取查找定义名为L2的TNS服务名.实例起来后会尝试把数据库服务注册到ADDRESS指定地址。

而这个地址就是你自己定义的Listener所监听的地址,这样Oracle实例就会把数据库服务自动注册到非默认的监听器了。

文件:tnsnames.ora

L2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = m_oracle)
    )
  )

1. 如果HOST是一个不能识别的主机名,启动的时候会报错提示监听地址不对.

SQL> startup

ORA-00119: invalid specification for system parameter LOCAL_LISTENER

ORA-00130: invalid listener address '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1111qqq)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=m_oracle)))'

2. 如果主机名正确,端口不对,数据库能正常启动,只是不能注册成功.运行命令 lsnrctl status L2 会发现数据库服务没有注册成功.

3. 如果 tnsnames.ora 文件中没有名字为L2的定义条目,那么ORA-00132提示L2名字不能解析.

SQL> startup

ORA-00119: invalid specification for system parameter LOCAL_LISTENER

ORA-00132: syntax error or unresolved network name 'L2'

2. 如果 LOCAL_LISTENER的值是一个地址描述符或者一个地址描述符列表(address_list/address)

例如 *.local_listener='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT = 1522)))'

那么实例启动的时候会知道尝试到指定地址注册数据库服务,这个时候只可能出现上面提到的前两种错误.

 

posted @ 2013-09-25 22:41  princessd8251  阅读(278)  评论(0编辑  收藏  举报