Bo's Oracle Station

查看: 4092|回复: 3

侦听器的一些问题

[复制链接]

81

主题

181

帖子

781

积分

高级会员

Rank: 4

积分
781
发表于 2017-4-6 14:40:47 | 显示全部楼层 |阅读模式
唐老师

sid=prod

listener.ora如下,内容是正确的
prod =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = *****)(PORT = 1522))
    )
  )
SID_LIST_prod =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME=*****)
      (SID_NAME = prod)
    )
  )

tnsnames.ora如下:service_name=pod是错误的
prod=
        (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST=****)(PORT=1522))
            (CONNECT_DATA=
                (SERVICE_NAME=pod)
            )
        )

prod_LOCAL=
        (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST=*****)(PORT=1522))
        )

此时:
SQL> show parameter local_listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      prod_LOCAL

那么这样的侦听器配置可以实现,动态静态侦听都正常吗?
我的理解是,即便tnsnames.ora中有上述错误
但是prod_LOCAL本身没有问题,足够满足动态侦听
而listener.ora中的内容,足够满足静态侦听

实际情况我在某个地方看到这样侦听器有问题,数据启动的时候报告
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'prod_LOCAL'

修改tnsname.ora中的上述错误后即正常启动。
唐老师,我不理解为什么会这样,我觉得即便tnsname中有那样的错误(甚至直接删除prod串的所有内容),也不会导致这样的问题。
看来理论依然很不扎实,唐SIR能解惑吗?

回复

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-4-10 16:49:13 | 显示全部楼层
SID_LIST_prod =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME=*****)
      (SID_NAME = prod)
    )
  )


这静态注册是用SID,现在的静态注册要写GLOBAL_DBNAME。
(SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl.example.com)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)

另外有prod_LOCAL怎么会报错说,找不到?prod_LOCAL写得没错。
回复 支持 反对

使用道具 举报

81

主题

181

帖子

781

积分

高级会员

Rank: 4

积分
781
 楼主| 发表于 2017-4-11 09:06:27 | 显示全部楼层
本帖最后由 lujiaguai 于 2017-4-11 09:09 编辑

当前还真的是缺失GLOBAL_DBNAME ,但是静态侦听可以用的
这是因为没有域名的原因吗?

我也很奇怪为什么会报告
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'prod_LOCAL'

我觉得只要是tnsnames.ora里面'prod_LOCAL‘是对的,就可以动态侦听
tnsnames.ora里面其他的串写错sid_name,是有错误,但不会影响启动
当时一眼看到这个tnsnames.ora里错误,就指出来,并没有认为这个错误会导致数据库启动不了
据当初操作的人说,修改了tnsnames.ora里错误的sid_name后,数据库就可以启动了
这个问题至今想不通
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-4-11 15:28:01 | 显示全部楼层
lujiaguai 发表于 2017-4-11 09:06
当前还真的是缺失GLOBAL_DBNAME ,但是静态侦听可以用的
这是因为没有域名的原因吗?

8i/9i时代是有这么写静态注册的。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-12-5 03:04 , Processed in 0.043343 second(s), 24 queries .

快速回复 返回顶部 返回列表