Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74284
  • 博文数量: 10
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 206
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-14 11:16
个人简介

oracle dba 精通dataguard,goldengate,mview等技术,擅长于数据库管理,备份恢复,性能调优,熟悉mysql,sqlserver的数据库,了解存储,善于shell编程

文章分类

全部博文(10)

文章存档

2015年(1)

2013年(9)

我的朋友

分类: Oracle

2013-06-01 22:03:22

oracle的listener监听器可以使用动态监听也可以使用静态监听.一般为安全起见,配置指定的ip的静态监听. 但许多环境中为了管理的方便,并未配置静态监听,而是采用了动态监听的方法. 采用动态监听时,listener使用gethostbyname()去得到ip地址,当ip地址不是本机.而且ip地址指向的主机上面 面又安装了oracle数据库,且监听器没有启动起来的时候,且sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES = (NTS)出现下述错误: TNS-01189: The listener could not authenticate the user 也就是说.如果已经报出此报错,则已经满足了以下几个条件 1.listener通过主机名得到的ip地址不是本机 2.ip地址指向的主机上面安装了oracle数据库,且监听器没有启动起来 3.sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES = (NTS) 在往深里分析,这个不仅仅在动态监听时会遇到,就是在静态监听时也会遇到.只要listener中制定的host为主机名,而主机名又非本机.及满足了报错的必要条件 此问题的解决方法 1.修改/etc/hosts文件,将主机名和ip地址对应正确即可.这是最常规的方法 2.oracle也提供了其他解决方法(查看metalink ID 285439.1 ),就是在修改listener监听器 LISTENER=  (ADDRESS_LIST=    (ADDRESS=(PROTOCOL=IPC)(KEY=ANYTHING))    (ADDRESS=(PROTOCOL=TCP)(HOST=serverhost)(PORT=1521))  ) 以上问题我在10.2.0.4中遇到并通过修改主机名的方法得以解决.  
阅读(2797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~