ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 彻底理解初始化参数SERVICE_NAMES和客户端TNS中SERVICE_NAME(2)

彻底理解初始化参数SERVICE_NAMES和客户端TNS中SERVICE_NAME(2)

原创 Linux操作系统 作者:husthxd 时间:2004-10-14 00:00:00 0 删除 编辑

 SERVICE_NAMES与客户端的TNS配置

 


      本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

      http://blog.itpub.net/post/11/3115

      2.       SERVICE_NAMES与客户端的TNS配置

在客户端配置tnsnames.ora

test1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = SIMIS)

    )

  )

test2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = hyk)

    )

  )

test3 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 129.0.8.91)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = hyb)

    )

  )

 

下面分布尝试用这三个tns来连接:

SQL> conn system/manager@test1

已连接。

SQL> /

 

INSTANCE_NAME    HOST_NAME

---------------- ------------------------------

simis            SB-HYK

 

SQL> conn system/manager@test2

已连接。

SQL> /

 

INSTANCE_NAME    HOST_NAME

---------------- ------------------------------

simis            SB-HYK

 

SQL> conn system/manager@test3

已连接。

SQL> /

 

INSTANCE_NAME    HOST_NAME

---------------- ------------------------------

simis            SB-HYK

 

SQL>

 

我们看到配置的SERVICE_NAME不管是simishykhyb均可以成功连接到服务器上。

 

下面看看如果SERVICE_NAMES中如果不包含INSTANCE_NAME的时候能不能通过INSTANCE_NAME进行连接,事实证明连接不成功:

SQL> alter system set service_names='hyb,hyk' scope=both;

 

系统已更改。

 

SQL> shutdown abort;

ORACLE 例程已经关闭。

SQL> startup

ORA-03113: 通信通道的文件结束

SQL> conn / as sysdba

已连接到空闲例程。

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area  114061244 bytes

Fixed Size                   282556 bytes

Variable Size              79691776 bytes

Database Buffers           33554432 bytes

Redo Buffers                 532480 bytes

数据库装载完毕。

数据库已经打开。

SQL>

 

SQL> conn system/manager@test1

ERROR

ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

 

      3.       结论

oracle9i开始,后台进程PMON自动在监听器中注册初始化参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。客户端tns配置中SERVICE_NAME的名称必须是SERVICE_NAMES或其中的一个NAME

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-21585/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 激励机制
请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。现就职于广州云图数据技术有限公司,系统架构师。

注册时间:2007-12-28

  • 博文量
    1392
  • 访问量
    3839718