使用MSSQL7的LINKEDSERVER


如果要将SQL7同SQL 6.5联接应该怎么?或者用SQL7同ORACLE或SYSBASE联
  接应该怎么办呢?这就需要用到LINKED SERVER。
  
  今天先说一下SQL7之间使用LINKED SERVER的方法
  
  一、在源服务器的Client Network Utility中添加目标服务器的联接
  二、打开ENTERPRISE MANGER,展开源服务器的Security,在LINKED SERVERS
  上单击右键,单击弹出菜单中的NEW LINKED SERVER
  三、在LINKED SERVER PROPERTIES窗口中,在LINKED SERVER框输入目标服务
  器名(在CLIENT NETWORK UTILITY中的服务器名),在SERVER部分选中
  SQL Server,在SERVER OPTIONS中根据选中RPC和RPC OUT
  四、切换到安全(Security),根据实际设置。
  (我一般选择“THEY WILL BE MAPPED TO”,然后输入帐号和口令)
  五、单击确定完成设置
  
  需要说明的是,在使用时同REMOTE SERVER有点不同,用REMOTE SERVER可以
  省略CATALOG(DBO),但使用LINKED SERVER时却不能省略,当时我在试时就因为
  这个问题耽误了不少时间。
  
  以上在WIN98+SQL7 DESKTOP同NT4+SP5+SQL7之间测试成功
  
  曾因工作的原因,在别人的督促之下,试了SQL 7同ORACLE联接,在SQL7中直接访问ORACLE的数据库方法,下面将该方
  法简单说一下。
  
  当时用的是LINKED SERVER直接联接对方数据库。
  
  一、先在SQL服务器装上ORACLE的客户端,并设置好
  二、然后打开ENTERPRISE MANGER,与昨天相同的方法进到添加LINKED SERVER窗口
  三、在LINKED SERVER框输入要使用的服务器名,服务器名允许按命名规则任意命名,但不能与已有的REMOTE SERVER
  或LINKED SERVER重名。
  四、在SERVER区选中“OTHER DATA SOURCE”
  五、Provider name选择“Microsoft OLE DB Provider for Oracle”
  六、在Product name处输入“Oracle”
  七、在Data source处输入在Oracle客户端程序中设置的服务器名
  八、在Provider处输入“MSDAORA” 注:用ORACLE就是这个,不能改
  九、在Server opentions区选择“RPC”和“RPC OUT”
  十、再切换到安全(Security),根据实际设置。
  (我都是选择“THEY WILL BE MAPPED TO”,然后输入帐号和口令)
  十一、单击确定完成设置
  
  我按这个步骤设置成功,但因时间和条件的问题,一直没再继续试其它的设置,如果各位那位有这样的条件的话,请
  再试一下其它的选项,看有什么不同,试完希望能将步骤和结果给我发一份。
  
  另需说明的是,这种的联接的稳定性还是可以的,在设好以后的一年中,只因为对方服务器出问题重设了一次,还有
  一次是ORACLE的客户端被管理员不小心删了个文件,又重设了一次,然后一直没出问题,并且速度也还可以,一个过程,
  在ORACLE客户端执行需要0.1秒钟,通过LINKED SERVER执行需要0.2秒钟左右。
  
  明天给大家写一下上面同样的设置用SQL7的系统过程设置的方法。
  
  以上在UNIX+ORACLE7和NT4+SP5+SQL7上测试成功。
  
  在Enterprise Manager中,设置时有以下三部分:
  
  一、服务器名和服务器类型
  二、服务器的服务器选项
  三、安全
  
  在用存储设置时也分这三部分
  
  步骤:
  
  一、添加服务器
  使用 sp_addlinkedserver 过程,所要使用的参数如下:
  @server “LINKED SERVER”
  @srvproduct “Product name”
  @provider “Provider”
  @datasrc “Data source”
  二、设置服务器选项
  使用 sp_serveroption 过程,所要使用的参数如下:
  @server “Linked server”
  @optname “RPC”或“RPC OUT”
  @optvalue True 或 False
  三、添加Login
  使用 sp_addlinkedsrvlogin 过程,所要使用的参数如下:
  @rmtsrvname “Linked server”
  @useself True 或 False
  @locallogin 本地LOGIN
  @rmtuser 远程用户
  @rmtpassword 远程用户口令
  
  应用实例代码
  
  exec sp_addlinkedserver 'Oracleserver','Oracle','MSDAORA','Oracleserver'
  exec sp_serveroption 'Oracleserver','rpc.out','True'
  exec sp_serveroption 'Oracleserver','rpc','True'
  exec sp_addlinkedsrvlogin 'Oracleserver','False',null,'sa',''
  
  因小弟英文水平有限,借助词霸虽说可以看懂前面几个过程的帮助,但翻译不出来,只好把自己当时设置时的源代码
  放上来,不求能全部说明白,只要大家借助这段码能够少走冤路也就达到目的了。
  
  上述代码在UNIX+ORACLE7和NT4+SP5+SQL7上测试成功。
  
  前两篇说的是联接ORACLE的方法,我还试过用ODBC的方法。
  
  方法:
  
  一、先建一个系统DSN,我试的只能是系统DSN
  二、再用前两的方法添加LINKED SERVER
  三、然后就可以正常使用了,但我试的发现这种方法不太稳定。
  另需说明的是:
  在第二步中Provider应为MSDASQL
  用ENTERPRISE MANAGER的话Provider name应
  选择“Microsoft OLE DB Provider for ODBC”
  
  在UNIX+ORACLE7和NT4+SP5+SQL7上测试成功
  
  我还设过SQL7同SYSBASE的联接,不过令人感到奇怪的是SQL7的客户可以直接指向SYSBASE服务器。
  
  方法:
  
  一、在本地服务器上安装SYSBASE的客户端并设好,可联上服务器
  二、打开SQL7的CLIENT NETWORK UTILITY,添加服务器,地址直接
  指向SYSBASE服务器的IP地址,端口号和SYSBASE的客户端的设置相同
  三、添加LINKED SERVER时和添加MSSQL的方法相同
  
  在UNIX+SYSBASE和NT4+SP5+SQL7上测试成功
  在UNIX+SYSBASE和WIN98+SQL7上测试成功
  
  在SQL7访问SQL6.5的方法最简单,只需在CLIENT NETWORK UTILITY中设上6.5服务器的联接即可。
  但有一点是,这样联接只能在QUERY ANALYZER中使用,却不能在ENTERPRISE MANAGER中进行管理。
  
  关于REMOTE SERVER和LINKED SERVER的问题就说到这儿了,要是再说下去的话就会有人说我这是“什么什么的裹脚布,又臭又长了”。 本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3