程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用MSSQL7的LINKEDSERVER

使用MSSQL7的LINKEDSERVER

編輯:關於SqlServer
 如果要將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的問題就說到這兒了,要是再說下去的話就會有人說我這是“什麼什麼的裹腳布,又臭又長了”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved