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

What‘snewinMicrosoftSQLServer2000(七)

編輯:關於SqlServer
聯合SQL 2000服務器(Federated SQL Server 2000 Servers)
  可能大家都聽說過集群服務器Clustered Server,但是在SQL 2000裡面我卻驚奇的發現,集群服務器不見了!取而代之的是一個叫聯合服務器的東東。
  現在就讓我們來看看它們之間有什麼區別吧。
  SQL 2000的數據庫能夠被分散在一組獨立的數據庫服務器上以支持大規模的Web站點的訪問需求和企業級的數據處理系統。面對日益增長的需求,只需要簡單的添加一個節點服務器就可以了。
  ――我怎麼看不出來和集群服務器有什麼區別嘛?
  ――上課的時候,不要發出這種聲音!急什麼,下面自然會講到的。再亂講話就罰站了哦。
  Windows 2000的COM+組件就是被設計來用於在集群的Windows 2000服務器上實現商業邏輯層的。每個服務器上都有一套同樣的COM+組件,Windows 2000自己來平衡各個服務器之間的負載。使用Cluster Administrator可以很方便的配置集群服務器。
  但是SQL 2000並不支持這樣的集群。SQL 2000支持可更新的分布式視圖(distributed partitioned vIEws ),用它來水平的將數據分割在一組服務器上。這使得用戶可以把一個數據庫服務器添加到一組數據庫服務器中,這些數據庫相互合作,以提供和集群數據庫服務器相同的性能標准。雖然它們合作管理這些數據,但是它們之間是獨立運作的。每個服務器有獨立的管理界面,(當然,你可以使用Enterprise Manager來管理一組服務器,但總是作為一個Group中多個Server來管理的,並不能把它們當作是一個Server),也有各自的運作規則,可以有其他的數據和進程,只是在聯合起來處理一個工作的時候才聯合在一起。
  SQL 2000現在在多CPU的系統上可以有非常優異的性能(可以有8個或者更多的CPU),但是使用聯合服務器,你幾乎可以處理無限的負載。現在http://www.tpc.org 最高的tpcc紀錄就是12台8CPU的聯合服務器完成的。(2月17日的測試結果,到現在仍然是最高的。)
  數據庫服務器和商業邏輯服務器不一樣,運行商業邏輯的時候每個服務器都可以完成相同的工作,即使一台服務器down了也不會對系統有什麼影響。而數據庫就不一樣,你必須把數據分散在不同的服務器上,否則對性能就沒有什麼提高了。而在這樣的情況下,如果數據庫服務器不能用於處理獨自的事務,那麼就顯得有些浪費。
  
  如何使用聯合服務器
  1、建立Linked Server
  
  SQL 7就有了的東東,打開你的Enterprise Manager,Security|Linked Servers,右鍵New Linked Server...,Server Type選SQL Server,然後填上用戶名口令什麼的
  
  2、在每個服務器上建立表
  -- On Server1:
  CREATE TABLE Table_1_To_30000
  (ID  INT PRIMARY KEY
  CHECK (ID BETWEEN 1 AND 29999),
  ... other fIElds
  )
  
  -- On Server2:
  CREATE TABLE Table_30000_To_60000
  (ID  INT PRIMARY KEY
  CHECK (ID BETWEEN 30000 AND 59999),
  ... other fIElds
  )
  
  -- On Server3:
  CREATE TABLE Table_60000_To
  (ID  INT PRIMARY KEY
  CHECK (ID > 60000),
  ... other fIElds
  )
  
  3、在每個服務器上建立視圖
  CREATE VIEW Partitioned_VIEws AS
  SELECT * FROM MyDatabase.dbo.Table_1_To_30000
  UNION ALL
  SELECT * FROM Server2.MyDatabase.dbo.Table_30000_To_60000
  UNION ALL
  SELECT * FROM Server3.MyDatabase.dbo.Table_60000_To
  
  4、Mission Accomplished
  現在你就只要簡單的使用這個視圖就可以了,服務器自己知道把數據放到該放的地方去,查詢的時候也知道該從那裡去取數據,是不是很easy呢?
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved