PLSQL连接ORACLE详解

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

这里要注意  :1.   用sqlplus  登陆数据库(包括远程数据库)的时候格式 为 :sqlplus 登录名/密码@Service_name    其中 Service_name 应该是  tnsnames.ora 文件中的 FDOL_TEST 位置的值     或者是  完整的网络地址 :@ip:端口号/真正的SERVICE_NAME  在本例中真正的SERVICE_NAME  即为 testdb  

2. 配置tnsnames.ora 文件 连接字符串时  字符串一定要靠左,不要有空格,如果有空格,pl/sql 和 sqlplus 也是连接不成功的

3 . listener.ora 文件中的HOST  最好改为 LOCALHOST 或者 主机ip(前提是ip是静态分配而不是动态获取的)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PL/SQL是一种程序设计语言,它是Oracle数据库的一部分,用于编写存储过程、触发器、函数等数据库对象。在使用PL/SQL连接Oracle数据库时,需要配置一些参数,以下是各个参数的详细解释: 1. HOST:这个参数指定数据库服务器的主机名或IP地址。 2. PORT:这个参数指定数据库服务器的监听端口号。 3. SERVICE_NAME:这个参数指定数据库的服务名,它可以用于连接多个实例。 4. USER ID:这个参数指定用于连接数据库的用户名。 5. PASSWORD:这个参数指定用于连接数据库的密码。 6. TIMEOUT:这个参数指定连接的超时时间,如果在指定的时间内无法连接数据库连接会自动断开。 7. SESSIONS:这个参数指定一个连接池中可以有多少个连接。 8. MAX_LIMIT:这个参数指定连接池中最大连接数,超过这个数目的连接会被拒绝。 9. MIN_LIMIT:这个参数指定连接池中最小连接数,当连接池的连接数少于这个数目时,会自动创建新的连接。 10. INCR_SIZE:这个参数指定连接池中动态增加的连接数。 11. DECR_SIZE:这个参数指定连接池中动态减少的连接数。 12. IDLE_TIMEOUT:这个参数指定连接在闲置一段时间后会被断开。 13. VALIDATE_CONNECTION:这个参数指定连接断开后是否自动重新连接。 配置这些参数可以提高PL/SQL连接Oracle的效率和灵活性。通过合理地设置这些参数,可以充分利用资源,提高数据库的响应速度,并且降低数据库服务器的负载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值