oracle tnsnames.ora文件详解

来源:互联网 发布:永宏plc编程线 编辑:程序博客网 时间:2024/05/21 17:40

监听配置文件

为了使得外部进程如 CAMS后台程序能够访问 Oracle 数据库必须配置 Oracle 网络服务器环境配置 Oracle 网络服务器环境是通过配置listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的listener.ora即监听配置文件在本小节说明 另两个文件分别在随后的两个小节说明

监听配置文件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin

  以下是一个示例

   LISTENER = #监听器名称

   (DESCRIPTION_LIST =

   (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

   )

   (ADDRESS_LIST =

   (ADDRESS =

   (PROTOCOL = TCP)

   (HOST = localhost.localdomain)

   (PORT = 1521))

   )

   )

   (DESCRIPTION =

   (PROTOCOL_STACK =

   (divSENTATION = GIOP)

   (SESSION = RAW)

   )

   (ADDRESS =

   (PROTOCOL = TCP)

   (HOST = localhost.localdomain)

   (PORT = 2481))

  

   )

   )

  

  SID_LIST_LISTENER = #命名规则 SID_LIST_+上面定义的监听器名称

  (SID_LIST =

   (SID_DESC =

   (SID_NAME = PLSExtProc1)

   (ORACLE_HOME = /u01/app/oracle/product/8.1.7)

   (PROGRAM = extproc)

   )

   (SID_DESC =

   (GLOBAL_DBNAME = cams)

   (ORACLE_HOME = /u01/app/oracle/product/8.1.7)

   (SID_NAME = cams)

   )

   (SID_DESC =

   (GLOBAL_DBNAME = oid)

   (ORACLE_HOME = /u01/app/oracle/product/8.1.7)

   (SID_NAME = oid)

   )

  )

  

  

  & 说明

1 listener.ora 文件中定义一个监听器 其缺省的名称为LISTENER这个监听器缺省以tcp/ip为协议地址且端口号为1521运行在CAMS应用中监听文件定义的监听器就使用这个缺省名字并且使用缺省的协议 tcp/ip和缺省的端口号 1521 待配置好监听文件以及随后说明的 sqlnet.ora 和tnsnames.ora 文件之后就可以用以下命令将监听文件中定义的监听器启动起来

   $ lsnrctl start

停止监听器的命令为

   $ lsnrctl stop

监测监听器当前状态的命令为

   $ lsnrctl status

当 lsnrctl status 命令有如下输出结果

   STATUS of the LISTENER

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

   Alias LISTENER

   Version TNSLSNR for Linux: Version 8.1.7.4.0 - Production

   Start Date 17-JAN-2004 19:00:08

   Uptime 31 days 15 hr. 27 min. 59 sec

就说明监听器正在运行否则说明监听器已经停止了 CAMS 系统的后台程序的正常运行不仅依赖于数据库实例的运行还依赖于这个数据库监听器的运行假如监听器没有启动即使数据库已经启动 CAMS 后台程序仍然不能正常工作

2 如(ADDRESS = (PROTOCOL= IPC)(KEY = EXTPROC))所示的一个

IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定不需要改动

3 在监听文件后部还有一个SID_LIST_LISTENER 段该段用于定义监听器的服务即为哪些数据库实例提供监听服务以 cams 实例为例其对应的服务信息为

   (SID_DESC =

   (GLOBAL_DBNAME = cams) #数据库名

   (ORACLE_HOME = /u01/app/oracle/product/8.1.7)

   (SID_NAME = cams) #数据库实例名

  )

sqlnet.ora 文件

sqlnet.ora 文件的存放路径为$ORACLE_HOME/network/admin 以下是一个示例

  

  NAMES.DEFAULT_DOMAIN = localdomain

  NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

& 说明

NAMES.DEFAULT_DOMAIN 指定网络域名NAMES.DIRECTORY_PATH指定当解析客户端连接标识符时命名方法 naming metthods 采用的优先顺序从左至右递减 在 CAMS 应用中 这两个参数采用上述所示的系统缺省值

  

tnsnames.ora 文件

tnsnames.ora 文件的存放路径为$ORACLE_HOME/network/admin 以下

  是一个示例

  OID.LOCALDOMAIN =

  (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =

  1521))

   )

   (CONNECT_DATA =

   (SERVICE_NAME = oid)

   )

  )

  CAMS.LOCALDOMAIN =

  (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =

  1521))

   )

   (CONNECT_DATA =

   (SERVICE_NAME = cams)

   )

  )

  INST1_HTTP.LOCALDOMAIN =

  (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =

  

  1521))

   )

   (CONNECT_DATA =

   (SERVER = SHARED)

   (SERVICE_NAME = MODOSE)

   (divSENTATION = http://admin)

   )

   )

  EXTPROC_CONNECTION_DATA.LOCALDOMAIN =

   (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

   )

   (CONNECT_DATA =

   (SID = PLSExtProc1)

   (divSENTATION = RO)

   )

   )

   

  

& 说明

tnsnames.ora 文件中定义一个或多个网络服务 netservice cams 实例对

  应的网络服务为

  CAMS.LOCALDOMAIN =

  (DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS =

   (PROTOCOL = TCP)

   (HOST = localhost.localdomain)

   (PORT = 1521))

   )

   (CONNECT_DATA =

   (SERVICE_NAME = cams)

  )

  )

  注意这里 ADDRESS项包含三个子参数

  

  PROTOCOL :默认协议TCP

  

  HOST :ip地址

  

  PORT:端口,默认1521

  

  CAMS.LOCALDOMAIN为数据名

  

  要确保在监听文件中也有对应的一个 ADDRESS 项也包含同样的三个子参数并且子参数的值对应都相等另外 这里SERVICE_NAME 的值必需确保与监听文件中某 SID_DESC项下的 SID_NAME参数的值相等


tnsnames.ora(本地net服务名)客户端必备,不需要listener。(如果既做客户端,又做服务端,则本地net服务名和监听程序都需要。)
-------------------------------------------
概述

    要连接远程数据库,就要配置本地的tnsnames.ora,配置方式很简单,但是以前也研究了好久,但是没实际实践,记不清楚,今天弄了弄,如下:
E:\oracle\product\10.1.0\db_1\NETWORK\ADMIN

  1. # tnsnames.ora Network Configuration File: E:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
  2. # Generated by Oracle configuration tools.
  3. YANGKAI =
  4. (DESCRIPTION =
  5. (ADDRESS = (PROTOCOL = TCP)(HOST = PC2012042915cdd)(PORT = 1521))
  6. (CONNECT_DATA =
  7. (SERVER = DEDICATED)
  8. (SERVICE_NAME = yangkai)
  9. )
  10. )
  11. EXTPROC_CONNECTION_DATA =
  12. (DESCRIPTION =
  13. (ADDRESS_LIST =
  14. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
  15. )
  16. (CONNECT_DATA =
  17. (SID = PL***tProc)
  18. (PRESENTATION = RO)
  19. )
  20. )
  21. orcl =
  22. (DESCRIPTION =
  23. (ADDRESS = (PROTOCOL = TCP)(HOST = 6*6)(PORT = 1521))
  24. (CONNECT_DATA =
  25. (SERVER = DEDICATED)
  26. (SERVICE_NAME = orcl)
  27. )
  28. )
yangkai是本地的,orcl是远程的。中间第二段可以没有。

注意

    在该配置文件中,不能有多余的留白(空格等),如果多、少一个空格,就会报错。所以,最好使用netca配置。

---------------------上面是在皇家时写的,下面为新补充的,在华腾写的。------------------------
配置步骤


打开tnsnames.ora查看:
工作的朋友辛苦了,娱乐一下!

总结

    配置完,直接打开pl/sql,可以看到数据名为kaige的了,输入用户名和密码,可以连接。如果不配置netca,使用网络(客户端)连接时,会报错,比如无法解析sid。其中对于oracle,sid,全局数据库名(globalname),服务名,都是实例名。

    其中oracle的netca的操作步骤上面已经写的很清楚了,只是很多人,包括我,都没仔细看,否则怎么会不知道怎么配置呢。。。


0 0
原创粉丝点击