博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PLSQL连接ORACLE详解
阅读量:6914 次
发布时间:2019-06-27

本文共 2667 字,大约阅读时间需要 8 分钟。

oracle网络配置 
三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。 
1.  sqlnet.ora-----通过这个文件来决定怎么样找一个连接中出现的连接字符串。 
例如我们客户端输入 
sqlplus sys/oracle@ora 
假如我的sqlnet.ora是下面这个样子 
SQLNET.AUTHENTICATION_SERVICES= (NTS) 
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME) 
那么,客户端就会首先在tnsnames.ora文件中找ora的记录.如果没有相应的记录则尝试把ora当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=ora这个实例,当然我这里ora并不是一个主机名 
如果我是这个样子 
NAMES.DIRECTORY_PATH= (TNSNAMES) 
那么客户端就只会从tnsnames.ora查找ora的记录,括号中还有其他选项,如LDAP等并不常用。 
2.  tnsnames.ora------这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应。 
只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。 
例子: 
ORA_TEST = 
    (DESCRIPTION = 
       (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
       ) 
      (CONNECT_DATA = 
         (SERVER = DEDICATED) 
         (SERVICE_NAME = ora) 
      ) 
    )  
ORA_TEST:客户端连接服务器端使用的服务别名。注意一定要顶行书写,否则会无法识别服务别名。 
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。 
HOST:ORACLE服务器端IP地址或者hostname。确保服务器端的监听启动正常。 
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。 
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令查看。 
3.  listener.ora------listener监听器进程的配置文件 
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。 
例子: 
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora 
# Generated by Oracle configuration tools. 
SID_LIST_LISTENER = 
    (SID_LIST = 
         (SID_DESC = 
             (GLOBAL_DBNAME = ora) 
             (ORACLE_HOME = E:/oracle/product/10.1.0/Db_2) 
             (SID_NAME = ora) 
         ) 
    ) 
LISTENER = 
    (DESCRIPTION = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) 
    ) 
LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。 
GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出 
ORACLE_HOME :oracle软件的跟目录 
SID_NAME :服务器端(本机)的SID 
PROTOCOL:监听协议,一般都使用TCP 
HOST:本机IP地址,双机时候使用浮动IP 
PORT:监听的端口号,使用netstat –an 检查该端口不被占用。 
上面一段都是从别人博客中拷来的,原文地址是: 
http://blog.csdn.net/aten_xie/article/details/6174069 
最后我自己用pl/sql连接oracle的时候的配置如下: 
listener.ora文件: 
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
       (GLOBAL_DBNAME = testdb) 
       (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) 
       (SID_NAME = testdb) 
    ) 
  ) 
LISTENER = 
    (DESCRIPTION = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521)) 
    ) 
sqlnet.ora 文件: 
SQLNET.AUTHENTICATION_SERVICES= (NTS) 
NAMES.DIRECTORY_PATH= (TNSNAMES) 
tnsnames.ora 文件: 
FDOL_TEST = 
    (DESCRIPTION = 
       (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521)) 
       ) 
      (CONNECT_DATA = 
         (SERVER = DEDICATED) 
         (SERVICE_NAME = testdb) 
      ) 
    ) 
注: 
远程服务器ip: 10.101.2.4 
端口:1521 
数据库:testdb 
用pl/sql登陆时候的database就填 FDOL_TEST

转载于:https://www.cnblogs.com/jazzka702/archive/2012/11/25/2787203.html

你可能感兴趣的文章
从输入 URL 到页面加载完的过程中都发生了什么事情?
查看>>
Redis基础知识之—— 5个必须了解的事情【★★★★★】
查看>>
QCustomplot使用分享(二) 源码解读
查看>>
13-预处理指令
查看>>
java--------抽象类与接口的区别
查看>>
JS 遍历JSON中每个key值
查看>>
第十四周(OOP版电子词典)
查看>>
vue如何在路由跳转的时候更新组件
查看>>
Java多线程(二)
查看>>
《http权威指南》阅读笔记(七)
查看>>
在Eclipse中安装ADT
查看>>
[case48]聊聊flink的SocketClientSink
查看>>
怎样给Swagger换皮肤?
查看>>
网络协议 15 - P2P 协议:小种子大学问
查看>>
# 编写第一个Chrome Extension
查看>>
Python--Redis实战:第五章:使用Redis构建支持程序:第1节:使用Redis来记录日志...
查看>>
2019 简易Web开发指南
查看>>
H5拍照、选择图片上传组件核心
查看>>
单词纠错
查看>>
你可能不知道的14个JavaScript调试技巧
查看>>