Oracle SQL*NET TCPIP 的通信模式、配置方法及应用实例

Oracle SQL*NET TCPIP 的通信模式、配置方法及应用实例,第1张

作者 张希摘 要 该文在介绍Oracle SQLNET TCP/IP的通信模式及其组成的基础上 给出SQLNET TCP/IP各版本下客户端及服务器端的具体配置 以及利用SQLNET在分布式环境下进行数据透明存取的应用实例 关键词 SQLNET TCP/IP通信模式配置应用一 引言SQLNET是Oracle公司的远程数据访问报文式软件 用于实现客户机/服务器和服务器/服务器的通信 SQLNET V 基于Oracle的TNS(Transparent Neork Substrate)和MPI(Multiprotocol Interchange)新技术 在SQLNET V 基础上又增加了两种功能即与所有工业标准协议之间单一 公用的接口以及通过一个或者多个多协议互换连接物理上独立的网络应用的能力 以下在概要介绍Oracle SQLNET TCP/IP的通信模式及其组成的基础上 给出SQLNETTCP/IP各版本下客户端及服务器端的具体配置 以及利用SQLNET在分布式环境下进行数据透明存取的应用实例 二 SQLNET TCP/IP的通信模式及其组成SQLNET TCP/IP在网络通信协议层中 对应ISO/OSI模式的第五层和第六层(即会话层和表示层) 所以它的运行还需第三方的TCP/IP网络软件支持 基于客户机/服务器的SQLNETTCP/IP网络通信模式如图 所示 在分布式(事务)处理中 通常有两种不同类型的计算机分别起客户机和服务器的作用 SQLNET首先确保消除客户机和服务器之间的所有区别(如内部数据类型表示 NLS国家语言字符集等) 以实现客户机和服务器透明通信 图 在完整的分布式处理中 不论是客户机/服务器模式还是服务器/服务器模式 都包含若干软件成分 图 分别示出客户机/服务器和服务器/服务器对话阶段的组成部分(以SQLNET V 为例)客户机和服务器之间的通信是在对等的关系下以具有相应通信级别的类似堆栈的方式进行的 堆栈每一层上的逻辑交换单元运送那个级别所用的综合内容 Oracle客户机和服务器交换SQL语句和数据行 在各UPI/OPI(User/Oracle Programmatic Interface)层 将这些交换转换成一系列对SQL例程(如注册 语法分析 执行等)的调用 SQLNET层将这些调用作为一系列Oracle发送/接收报文对待 TNS负责解决所有一般性的机器及连通问题(如服务器或TNS的终点位置 辨别连接中是一个还是多个Multiprotocol Interchange多种协议互换等) Oracle协议适配器则负责把TNS功能映像到客户机/服务器连接中所用的任何工业标准协议上 或在multimunity(多群体)连接情况下客户机服务器的某些组成部分所用的工业标准协议上 图 三 SQLNET TCP/IP 的配置 SQLNET V 的配置( )服务器端 在/ect/services文件中加入下列行:orasrv /tcp(orasrv是SQLNET V 使用的服务进程 为ORACLE公司推荐用户使用的TCP/IP的端口号) 在/etc/hosts文件中加入数据库服务器的主机名和绝对地址:如: fgg fgg ( )客户端在oracle ini文件中加入:local=host string (缺省数据库)remote=host string (远程数据库)host string也称connect string(连接串) 用来指明要连接的Oracle数据库 host string的形式为:net prefix:host name:SYSTEM ID其中:net prefix 网络协议前缀 对于TCP/IP为Thost name Oracle服务器的主机名 此主机名应在hosts文件中描述过 SYSTEM ID ORACLE服务器的标识符 上述两个数据库服务器的host string分别为:t:fgg :ora t:fgg :ora 从SQLNET V 升级到SQLNET V 的配置( )服务器端 在/ect/services文件中加入下列行:listener /tcp 在oracle home/neork/admin目录中配置listener ora文件:LISTENER:(ADDRESS LIST:(ADDRESS:(PROTOCOL:tcp)(HOST:fgg )(PORT: )))STARTUP WAIT TIME LISTENER= CONNECT TIMEOUT LISTENER= SID LIST LISTENER=(SID LIST:(SID DESC:(SID NAME:ora )(ORACLE HOME:/export/home/oracle )))TRACE LEVEL LISTENER=OFF·如是分布式数据库 且有多个V 节点 则还需配置tnsnames ora文件:(参见客户端此文件)·如网络中包含一个或多个Multiprotocol Interchang(多种协议互换) 则还需配置tnsnav ora文件:·如在采用SQLNET V 后启用ORACLE 的多线索 则需在oracle home/dbs/oracle ini(ORACLE初始化参数文件)加入下列行:mts dispatchers= tcp mts max dispatchers= mts servers= mts max servers= mts service:ora mts listener address: (ADDRESS=(PROTOCOL:tcp)(PORT: )(HOST:fgg )) ( )客户端 在c:\orawin\neork\admin目录中配置tnsnames ora文件:fgg :(DESCRIPTION:(ADDRESS LIST:(ADDRESS:(PROTOCOL:TCP)(Host: )(Port: )))(CONNECT DATA:(SID:ora )))fgg :(DESCRIPTION:(ADDRESS LIST:(ADDRESS:(PROTOCOL:TCP)(Host: )(Port: )))(CONNECT DATA:(SID:ora ))) 在c:\windows\oracle ini文件中将 local= 改为:local=fgg 四 连接数据库可使用下列两种方法之一连接数据库: 在SQLPLUS中 用CONNECT命令 如需连接到fgg 主机上的数据库 可用:connect scott/tiger@t:fgg :ora (用SQLNET V 连接)connect scott/tiger@fgg (用SQLNET V 连接) 在启动SQLPLUS时 指明所需连接的数据库 如需连接到fgg 主机上的数据库 可用:sqlplus scott/tiger@t:fgg :ora (用SQLNET V 连接)sqlplus scott/tiger@fgg (用SQLNET V 连接 )五 存取数据库一旦配置好了SQLNET 运行在网络上的Oracle工具 服务器均可存取 修改 共享和存储在其它服务器上的数据 Oracle分布式数据库系统提供多种存取远程数据库的方法 建立数据库链路Oracle中的数据库链路为远程数据库定义一路径 一旦建立了数据库链路 任何一个连接到本地数据库的应用 均可通过数据库链路引用远程数据库上的表和视图 仅需在相应的SQL语句中所引用的远程表和视图后加上@数据库链路名 如:在fgg 主机上建立一引用fgg 数据库的数据库链路:create public database link link using fgg ;(根据需要可建立公用和专用的数据库链路)在本地查询fgg 数据库中表temp:select from scott temp@link ; 建立表快照ORACLE的表快照(table snapshot)允许一个主表在分布式数据库的其它结点进行复制 使用快照可在本地为远程数据维持只读副本 如在fgg 上建立fgg 数据库中表temp的快照:create snapshot tempshot as select from scott temp@link ;查询快照:select from tempshot;在定义快照时还可指定快照刷新的时间和方式 以确保快照及时 正确地反映主表中的数据 数据库之间数据复制使用SQLPLUS的COPY命令可在网络上的数据库之间进行表及表的数据复制 如在fgg 上复制fgg 数据库中表temp 复制后的表名为temp :copy from scott/tiger@fgg replace temp using select from temp根据需要可使用replace create insert update四种控制语句 lishixinzhi/Article/program/Oracle/201311/18766

安全资源池硬件服务器CPU资源池的几个资源为:CPU池、内存池、存储池、I/O池。CPU池里,CPU之间物理间隔不能太远,CPU之间可以通过总线互通,不会降低转换的效率,不会有信号延时。Intel志强可扩展CPU系列可支持3条或者4条UPI总线,可以支持8路以上主板。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13439731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-06
下一篇 2023-08-06

发表评论

登录后才能评论

评论列表(0条)

保存