当前位置:  数据库>oracle

配置Oracle 客户端连接到数据库

    来源: 互联网  发布时间:2017-05-25

    本文导语: --================================= -- 配置Oracle 客户端连接到数据库 --=================================   Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置...

--=================================

-- 配置Oracle 客户端连接到数据库

--=================================

 

Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置方法与SQL server 大同小异。

相关阅读:

客户端不安装Oracle也可以连接数据库 

PLSQL Developer 或Toad 不安装Oracle 客户端连接数据库

解决Oracle 11gR2 RAC 无法在客户端通过scanIP连接数据库

一、什么是Oracle Net

Oracle Net 用于客户端和服务器之间创建一个连接会话,并负责维护该会话。

Oracle Net 在客户端作为应用程序的一个后台进程组件,而在服务器端则包含称为侦听器的活动进程,

负责客户端和服务器之间的交互。

Oracle Net 同时也支持异构数据库的连接,如连接到Sybase,Informix,DB2,SQL Server等

通常基于下列配置来实现

网络配置(网络必须是联通的)

节点所在的位置(IP/Hostname)

应用程序

所使用的协议(TCP/IP、/TCP/IP with SSL、SDP、Named Pipes)

 

Oracle Net支持的连接类型

客户端-服务器模式(如SQLPlus)

Java 应用程序(JDBC等)

Web 客户端应用程序

使用基于Web的应用程序(App Server)作为中间件来实现,可以配置JDBC Oracle Call Interface (OCI) driver 或thin JDBC driver

通过HTTP直接连接到Oracle 服务器,如OEM

 

 

Oracle Net实现机制

用户发出连接请求实现与用户进程进行交互

用户进程通过Oracle Net 来与服务器进程交互

服务器进程则与实例进行交互(由Oracle Net维护)

实例通过后台进程交互来完成数据库的读写操作

 

Oracle Net 连接方式

本地客户端连接的数据库(即客户端与数据库位于同一台服务器)。

本地连接同样使用到了Oracle Net,因为任何与数据的交互都通过Oracle Net来完成。

不需要使用到Listener,因为本地连接使用的是IPC协议,而IPC协议允许主机内进程间相互通信,由操作系统提供。

本地连接不需要进行任何配置,且本地服务器上可以运行若干个实例。

本地连接是唯一一个不需要侦听器的连接类型。

连接方法:CONNECT username/password

 

所有非本地客户端连接到数据库

服务器端启用Listener进程

客户端通过TNSNAME或Easy connect或LDAP等名称解析方式来解析连接字符串

一旦连接成功,即是Listener服务停止,不影响该会话。

 

Oracle Net Listener(侦听器)

运行于服务器端,用于侦听所有来自客户端的连接请求,并提供处理数据库服务方面的请求

位置:$ORACLE_HOME/network/admin/listerer.ora

--对应于netmgr中(GUI界面)的Listeners项下建立的缺省侦听器(Listener)

$ORACLE_HOME/network/admin/sqlnet.ora

--对应于netmgr中(GUI界面)的Profile

服务器端配置tnsnames

位置:ORACLE_HOME/network/admin/tnsnames.ora

--对应于netmgr中(GUI界面)的Service Naming

Listener提供的信息包括,IP地址、端口号、协议、服务名(service_name)等

一个Listener能够为多个数据库实例提供服务

 

二、客户端到服务器建立会话的过程及相关术语

执行如下的命令来建立连接

SQL> CONNECT username/password@net_service_name

 

连接字符串(connect string):username/password@net_service_name

包含了用户名、密码、连接标识符

如:SQL> conn scott/tiger@orcl

字符串分解

用户名scott

密码为tiger

"/"用于分割用户与密码

"@"指示网络连接所需的用户进程

orcl连接标识符

 

连接标识符(connect identifier)

@后面的即为连接标识符,如上例中的orcl。

连接标识符的名字是一个映射到连接描述符的简化

连接标识符可以为网络服务名/别名、数据库服务名等

(net service name, database service name, or net service alias.)

 

连接描述符(connect discriptor)

使用一种特殊格式来描述连接的具体信息,信息包含了、数据库所在的位置(IP地址)、

服务名、端口号等

如tnsnames中的:

orcl =--网络服务名,数据库别名,等同于连接标识符(屏蔽客户端如何连接到服务器端的细节)

(DESCRIPTION =

(ADDRESS_LIST =

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

--IP地址,端口号,协议

)

(CONNECT_DATA =

(SERVICE_NAME = orcl.linuxidc.com)--服务名

)

)

以上所有DESCRIPTION内的信息即为连接描述信息

描述符之上等于号左边的可以为网络服务名,网络服务别名等,此等同于连接标识符。

 

服务名(service_name)

客户端连接到实例的服务名,可以为该参数指定一个或多个服务名。该参数从9i引入,service_name通常可以使用SID代替。

9i之后,Oracle推荐使用service_name而不是SID。可以通过定义多不不同的服务名来区分不同的用户连接,该参数缺省的格式为db_name.domain_name。

实例将所定义的服务名注册到侦听器,当客户端请求服务时,侦听器根据服务名决定将使用哪个实例提供所请求的服务并与之建立连接

基于相同的数据库可以定义多不不同的服务名来区分不同的使用情况

如定义service_name为

service_names = sales.linuxidc.com,hr.robinsn.com

则sales部门通过sales服务名来建立连接,hr部门通过hr服务名来建立连接,

而无须关心连接的是哪一个数据库。

 

演示连接过程(非本地连接)

环境:服务器为RHEL 5 + Oracle 10g ,客户端Winxp + 10g Client

查看服务器listener是否启动

[oracle@linuxidc admin]$ lsnrctl--启动lsnrctl 侦听器程序

 

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-SEP-2010 13:31:06

 

Copyright (c) 1991, 2005, Oracle.All rights reserved.

 

Welcome to LSNRCTL, type "help" for information.

 

LSNRCTL> status--查看侦听器状态,侦听器没有启动

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:no listener

TNS-12560: TNS:protocol adapter error

TNS-00511: No listener

Linux Error: 111: Connection refused

 

--启动缺省的侦听器

--在下面列出的信息中没有侦听器的路径及listener.ora文件,此处listener.ora 不存在

LSNRCTL> start

Starting /u01/app/oracle/10g/bin/tnslsnr: please wait...

 

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Log messages written to /u01/app/oracle/10g/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linuxidc.com)(PORT=1521)))

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

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

AliasLISTENER

VersionTNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date03-SEP-2010 13:31:14

Uptime0 days 0 hr. 0 min. 0 sec

Trace Leveloff

SecurityON: Local OS Authentication

SNMPOFF

Listener Log File/u01/app/oracle/10g/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linuxidc.com)(PORT=1521)))

The listener supports no services

The command completed successfully

 

LSNRCTL> service--已经看到了已注册的实例信息,因为10g支持动态注册

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

Services Summary...

Service "orcl.linuxidc.com" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:0 refused:0 state:ready

LOCAL SERVER

Service "orclXDB.linuxidc.com" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

Handler(s):

"D000" established:0 refused:0 current:0 max:1022 state:ready

DISPATCHER

(ADDRESS=(PROTOCOL=tcp)(HOST=linuxidc.com)(PORT=51473))

Service "orcl_XPT.linuxidc.com" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:0 refused:0 state:ready

LOCAL SERVER

The command completed successfully

 

--查看客户端tnsnames.ora的信息

C:/>type F:/oracle/product/10.2.0/client_1/NETWORK/ADMIN/tnsnames.ora

# tnsnames.ora Network Configuration File: F:/oracle/product/10.2.0/client_1/NET

WORK/ADMIN/tnsnames.ora

# Generated by Oracle configuration tools.

orcl =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = orcl.linuxidc.com)

)

)

C:/>sqlplus /nolog

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五9月3 13:42:02 2010

 

Copyright (c) 1982, 2005, Oracle.All rights reserved.

 

SQL> conn scott/tiger@orcl

Connected.

--将tnsnames.ora中服务别名改为oral后再连接,可以正常连接,即网络服务名可以随便取。

SQL> conn system/RedHat@oral

Connected.

 

--查看数据库中的服务名

SQL> show parameter service_names;

 

NAMETYPEVALUE

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

service_namesstringorcl.linuxidc.com


    
 
 

您可能感兴趣的文章:

  • 如何配置SendMail的客户端
  • linux客户端如何配置网络?
  • 客户端ntp配置问题
  • 如何在redhat linux用小区宽带上网,如何配置,在windows中使用电信的客户端程序来上的
  • windows操作系统做服务器,客户端是unix操作系统,如何配置unix才能上网
  • 配置DNS服务器后,服务器可解析,客户端不能解析。求解
  • 用win2k做客户端,用linux(虚拟机)的apache+mysql做服务器,这个网络要怎么配置?
  • 请问我怎么在SERVER端配置X WINDOW,以便可以在客户端用XWin32登录到服务器
  • 我在客户端运行有些applet时,总是什么也不显示!是否需要安装一个插件?如何配置?谢了!给分
  • 怎么将虚拟机(fedora)配置成pppoe服务器,windows作客户端,急啊!!!
  • 在客户端配置TNS测试报错ORA-12170:TNS:连接超时
  • 使用secureFX连接到linux上需要在linux上配置什么
  • 9.0下,sendmail默认配置,我用outlook可以连接到服务器,可是让接收却不让发送,提示如下
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • LINUX作为客户机怎样配置才能连上学校的主机????
  • Sendmail 已经配置,但无法通过客户机发送邮件。(在先等待)
  • 共享局域网上网,iptable+dhcp 配置,为什么客户机得不到dns?
  • 论坛 iis7站长之家
  • C++ Strings(字符串) 成员 get_allocator():返回配置器
  • LINUX如何配置网卡,配置TELNET,急!在线等待!
  • C++ MultiMaps 成员 get_allocator():返回multimap的配置器
  • liunx下配置axis2的环境变量怎么配置
  • C++ Lists(链表) 成员 get_allocator():返回list的配置器
  • centos配置JAVA运行环境在配置JK时出错
  • C++ Maps 成员 get_allocator():返回map的配置器
  • 求xmanager3.0 配置root用户,连接redhat linux 6.0 配置文档
  • C++ Double Ended Queues(双向队列) 成员 get_allocator():返回双向队列的配置器
  • 高分求救!!!怎样在linux下配置tomcat文件?同时配置sqlServer数据库?
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • EJB配置好了,下次启动weblogic的时候还需要重新配置吗
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 高手赐教!Tomcat4.02的配置,不知javaBean目录、servlet目录该如何配置?
  • kohana介绍及安装配置方法
  • 请问JDBC 需要配置吗?如要,如何配置??来者送分!!!
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 请问该如何配置GTK的字体配置文件??
  • centos6网络配置及网卡设置相关命令及配置文件
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • Linux内核中影响tcp三次握手的一些协议配置
  • 安装linux的最低配置:硬盘,内存,以及cpu的最低配置?多谢赐教!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,