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