建立与Oracle服务器连接的两种连接模式

建立与Oracle服务器连接的两种连接模式,第1张

在建立Oracle数据库的时候 应该会在数据库建立助手向导上面看到这么一个选项 就是数据库的连接模式采用什么方式 在Oracle i或者 g中 可以看到有 种连接模式 一种叫做专用服务器连接(dedicated server) 另外一种叫做共享服务器连接(shared server) 下面我们来分类说一下这两种连接方式的不同点

专用服务器模式就是说每次在对Oracle进行访问的时候 Oracle服务器的Listener会得到这个访问请求 然后回为这个访问创建一个新的进程来进行服务 所以说 对于每一个客户端的访问 都会生成一个新的进程进行服务 是一种类似一对一的映射关系 这种连接模式的一个很重要的特点就是UGA(用户全局域)是存储在PGA(进程全局域)中的 这个特性也很好说明了当前用户的内存空间是按照进程来进行分配的

而另外的共享服务器连接则是一种在程序编写的时候通常会用到的连接池(pool)的概念 采用这种模式的话 在数据库的初始化的时候就会创建一批服务器连接的进程 然后把这些连接进程放入一个连接池来进行管理 初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的 在连接建立的时候 Listener首先接受到客户端的建立连接的请求 然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接 调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中 然后再共享服务器连接池中查找有无空闲的连接 然后让这个空闲的服务器进行处理 处理完毕以后再把处理结果放在SGA的相应队列中 调度器通过查询相应队列 得到返回结果 再返回给客户端 这种连接模式的优点在于服务器进程的数量可以得到控制 不大可能出现因为连接人数过多而造成服务器内存崩溃 但是由于增加了复杂度以及请求相应队列 可能性能上有所下降

lishixinzhi/Article/program/Oracle/201311/18617

软件环境: 1、Windows NT40+ORACLE 804
2、ORACLE安装路径为:C:\ORANT
3、服务器A、服务器B,均装有NT 40中文版

实现方法: 1 假设A地址192111,B地址192112

2 A、B上配置好TCP/IP,互相Ping通。

3 配置initora文件,若global_name = true的话,database link 的名字必须同远程机的实例名相同,

为简便起见,请将global_name 设为 false。

4 在服务器上配置tnsnamesora,将Remote机器的地址(IP)信息加入本地的tnsnamesora

A服务器:
TNSA_B =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcpworld)
(PROTOCOL = TCP)
(Host = 192112)
(Port = 1521)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)

B服务器:
TNSB_A =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcpworld)
(PROTOCOL = TCP)
(Host = 192111)
(Port = 1521)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)

5 在 SQLPlus 或其它工具中创建数据库链接

A服务器:create public database link A_TO_B connect to tmp identified by tmp using 'TNSA_B';

B服务器:create public database link B_TO_A connect to tmp identified by tmp using 'TNSB_A';

说明:
tmp是一个临时用户,A服务器、B服务器上均有,它的作用是提供链接的目的地,
假如:
B服务器上有user1、user2、tmp三个用户,user1和user2把他们想要对外公开的表的权限授给tmp用户,
那么,所有能通过database link连接到tmp用户上的人就可以直接访问user1、user2上的已授权表了。

6 建立database link以后,请用这种格式select from table_name@database_link_name 的方式访问

如:在A服务器上想访问B服务器上user1用户table1表的内容(A到B的连接为A_TO_B),则

SQL> select from table1@A_TO_B;
7 如果Oracle版本为73,则数据库联接写法如下:

A服务器:create public database link A_TO_B connect to tmp identified by tmp using 't:192112:orcl';

B服务器:create public database link B_TO_A connect to tmp identified by tmp using 't:192111:orcl';

设置到 Oracle 的链接服务器的步骤
您必须在运行要在其上设置链接服务器的 SQL Server 计算机上安装 Oracle 客户端软件。
在运行 SQL Server 的计算机上安装所需的驱动程序。Microsoft 仅支持用于 Oracle 的 Microsoft OLE DB 提供程序和 Microsoft ODBC 驱动程序。如果您使用第三方提供程序或第三方驱动程序连接到 Oracle,则在使用这些提供程序或驱动程序遇到任何问题时,您必须与相应的供应商联系。
如果您使用用于 Oracle 的 Microsoft OLE DB 提供程序和 Microsoft ODBC 驱动程序,请考虑下列事项:
随 Microsoft Data 数据访问组件 (MDAC) 提供的 OLE DB 提供程序和 ODBC 驱动程序和都需要 SQLNet 23x或更高版本。您必须在客户端计算机上安装 Oracle 73x 客户端软件或更高版本。客户端计算机是运行 SQL Server 的计算机。
确保您已经在运行 SQL Server 的计算机上安装了 MDAC 25 或更高版本。如果使用 MDAC 21 或更早版本,则无法连接到使用 Oracle 8x 或更高版本的数据库。
要使 MDAC 25 或更高版本能够与 Oracle 客户端软件一起工作,必须按照下表中的说明修改运行 SQL Server 的客户端计算机的注册表。


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

原文地址: https://www.outofmemory.cn/zz/13470013.html

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

发表评论

登录后才能评论

评论列表(0条)

保存