`
yzd
  • 浏览: 1813087 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

链接服务器的配置和使用(SQL Server)

 
阅读更多
配置链接服务器<br>链接服务器一般用来处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析该命令,并向 OLE DB 发送行集请求。行集请求的形式可以是对提供程序执行查询或从提供程序打开基表。<br>分布式查询可以访问来自多种异类数据源的数据,而这些数据可存储在相同或不同的计算机上。Microsoft® SQL Server™ 2000 通过使用 OLE DB(Microsoft 通用数据访问应用程序接口 (API) 规范)支持分布式查询。<br>链接服务器配置允许 Microsoft® SQL Server™ 对其它服务器上的 OLE DB 数据源执行命令。链接服务器具有以下优点: <br><br>远程服务器访问。<br>对整个企业内的异类数据源执行分布式查询、更新、命令和事务的能力。<br><br>能够以相似的方式确定不同的数据源。 <br>链接服务器组件<br>链接服务器的定义指定了 OLE DB 提供程序和 OLE DB 数据源。 <br><br>OLE DB 提供程序是管理特定数据源和与特定数据源进行交互的动态链接库 (DLL)。OLE DB 数据源标识可通过 OLE DB 访问的特定数据库。尽管通过链接服务器的定义所查询的数据源通常是数据库,但也存在适用于多种文件和文件格式的 OLE DB 提供程序,包括文本文件、电子表格数据和全文内容检索结果。下表说明了最常用于 SQL Server 的 OLE DB 提供程序和数据源示例。<br><br><strong>OLE DB提供程序OLE DB 数据源 </strong><br>用于 SQL Server 的 Microsoft OLE DB 提供程序SQL Server 实例<br>用于 Jet 的 Microsoft OLE DB 提供程序 mdb 数据库文件的路径名 <br>用于 ODBC 的 Microsoft OLE DB 提供程序指向某个具体数据库的 ODBC 数据源名称 <br>用于 oracle 的 Microsoft OLE DB 提供程序 指向 oracle 数据库的 SQL*Net 别名 <br>用于索引服务的 Microsoft OLE DB 提供程序 能够对其执行属性搜索或全文检索的内容文件 <br><br>说 明SQL Server 只针对分别用于 SQL Server、Jet、Oracle、索引服务和 ODBC 的 Microsoft OLE DB 提供程序进行了测试。然而,SQL Server 分布式查询旨在与任何实现了必需的 OLE DB 接口的 OLE DB 提供程序一起使用。<br><br>为了使数据源能够通过链接服务器返回数据,那个数据源的 OLE DB 提供程序 (DLL) 必须位于 SQL Server 所在的服务器上。 <br><br>链接服务器一般用来处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析该命令,并向 OLE DB 发送行集请求。行集请求的形式可以是对提供程序执行查询或从提供程序打开基表。<br><br><br><strong>管理链接服务器的定义</strong><br>设置链接服务器时,请注册 SQL Server 的连接信息和数据源信息。完成注册后,该数据源总可以用单个逻辑名称引用。<br>可以使用存储过程或 SQL Server 企业管理器来创建或删除链接服务器的定义。 <br><br><strong>使用存储过程: </strong><br>使 用 sp_addlinkedserver 创建链接服务器的定义。若要查看有关给定的 SQL Server 实例中定义的链接服务器的信息,请使用 sp_linkedservers。有关更多信息,请参见 sp_addlinkedserver 和 sp_linkedservers。<br><br>使用 sp_dropserver 删除链接服务器的定义。还可以使用此存储过程删除远程服务器。<br><strong>使用 SQL Server 企业管理器:</strong> <br>使 用 SQL Server 企业管理器控制台树和"链接服务器"节点(在"安全性"文件夹内)来创建链接服务器的定义。为链接服务器定义名称、提供程序属性、服务器选项和安全选项。 有关各种为不同的 OLE DB 数据源设置链接服务器的方式以及要使用的参数值的更多信息,请参见 sp_addlinkedserver。<br><br>通过右击链接服务器并单击"属性"命令,可编辑链接服务器的定义。<br><br>通过右击链接服务器并单击"删除"命令,可删除链接服务器的定义。 <br>当对链接服务器执行分布式查询时,请对每个要查询的数据源指定完全合法的、由四部分组成的表名。这个由四部分组成的名称的格式应是:linked_server_name.catalog.schema.object_name。<br><br><br> 众所周知,在大型的数据库系统设计中,为了提升效率,不可避免的要将不用的业务放在不同的数据实例上,因此我们使用到了链接服务器,链接服务器为大家在不 同的服务之间进行分布式数据操作提供了便利。本例子基于windows 2003操作系统,Sql server 2000(sp4)数据库。<br><br>首先要打开你本地服务器和远程服务器的MSDTC:<br>开始--&gt;Microsoft SQL Server--&gt;服务管理器--&gt;选择服务中的 Distributed Transaction Coordinator(此即DTC),点击“启动”按钮,启动MSDTC<br><div align="center"><br></div>
<br><span style="color: rgb(255, 0, 0);">---------------------------------------------------------------------------------------------------------------------------------------------</span><br><span style="color: rgb(255, 0, 0);">打开以后,在本地服务器上注册远程服务器的信息,创建linkedServer,操作代码如下:</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">sp_addlinkedserver @server='GKSRV',@srvproduct='',@catalog='gk_2005',@provider='SQLOLEDB',</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);"> @provstr='DRIVER={SQL Server};Initial Catalog=gk_2005;SERVER=10.16.37.109;UID=admin;PWD=1234;'</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">其中@server名称随便取,@catalog为数据库名,@provider为数据库驱动,@provstr为连接字符串</span><br style="color: rgb(255, 0, 0);"><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">然后使用sp_linkedservers,查看此服务器是否已经成功注册为链接服务器,如果已经注册成功,则使用</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">EXEC sp_addlinkedsrvlogin 'GKSRV','false',注册login帐号,然后你就可以执行一个Sql语句,试试看看是否可以从链接服务器中操作数据了,</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">例如:</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">select top 10 * from gksrv.gk_2005.dbo.ndy_Class</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">就是从刚才我设置的链接服务器GkSrv中的一个表:ndy_Class中查询数据。<br><font size="3"><span style="color: rgb(0, 0, 0); font-weight: bold;">经过本人测试:这个连接方法可以访问到该服务器上的所有数据库,并非只能操作</span></font></span><font size="3"><span style="color: rgb(255, 0, 0); font-weight: bold;"><span style="color: rgb(0, 0, 0);">数据库</span>gk_2005<span style="color: rgb(0, 0, 0);">的内容</span></span></font><span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"></span><br>-------------------------------------------------------------------------------------------------------------------------------------------------<br></span><br>备注:<br>1、 关于链接服务器的详细情况请参阅联机丛书中的sp_addlinkedserver、 sp_addlinkedsrvlogin、sp_addserver、sp_dropserver、sp_serveroption、 sp_linkedservers等系统级存储过程。<br>2、关于此链接服务器的创建及其使用在不同环境下(全部内网服务器、一内网一公网服务器、全公网服务器)测试,均告通过。<br>3、有时候在存储过程中访问链接服务器的时候可能会碰到如下的提示,必须要对ANSI warning 和ANSI nulls进行设置,这时候按照如下的方法进行设置:<br>设置本地数据库的属性--&gt;连接--&gt;选上ANSI warning 和 ANSI nulls
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics