聯合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呢?