[研究] MS-SQL Server 複製(Replication,同步)
SQL 複製(Replication)架構圖
這是在 Windows 2003 Enterprise + SQL Server 2005 上作的
理論上 SQL Server 2008 和 SQL 2008 R2 上畫面可能有點差異,但是方法應該通用
.gif)
「發行者(Publisher)」是一個可透過複寫使資料可用於其他位置的資料庫執行個體。發行者可以有一或多個發行集,每個發行集各定義一組邏輯相關的物件及要複寫的資料。
「散發者(Distributor)」是一個作為儲存器的資料庫執行個體,用於儲存與一或多個「發行者」相關聯的複寫特定資料。每個發行者都會關聯於散發者端的單一資料庫 (稱為散發資料庫)。散發資料庫儲存複寫狀態資料和有關發行集的中繼資料,有時它還作為從「發行者」移動至「訂閱者」之資料的佇列。在許多情況下,單一資料庫伺服器執行個體可同時作為「發行者」和「散發者」,稱之為「本機散發者」。當在單獨的資料庫伺服器執行個體上設定「發行者」與「散發者」時,「散發者」稱為「遠端散發者」。
「訂閱者(Subscriber)」是接收已複寫資料的資料庫執行個體。訂閱者可以接收多個發行者和發行集的資料。依所選的複寫類型而定,訂閱者也可以將資料變更傳回發行者,或將資料重新發行到其他訂閱者。
「發行項」用以識別包含在發行集中資料庫物件的發行項。發行集可包含不同類型的發行項,其中包括資料表、檢視、預存程序和其他物件。當您將資料表當作發行項來發行時,您可以利用篩選來限制傳送給訂閱者之資料的資料行和資料列。
「發行集」發行集是單一資料庫之一或多個發行項的集合。將多個發行項分組到單一發行集,會比較容易指定一組當作一個單元來複寫的邏輯相關之資料庫物件和資料。
「訂閱」訂閱是對要傳遞給「訂閱者」之發行集副本的要求。訂閱會定義將在何時、何處收到什麼發行集。訂閱的類型有兩種:發送和提取。如需有關發送訂閱和提取訂閱的詳細資訊。
測試架構
Windows XP + VMware Workstation 7.0.1 架設兩台 VM
W2003E-1 : Windows 2003 R2 + SQL 2005 Enterprise, IP : 192.168.128.41
W2003E-2 : Windows 2003 R2 + SQL 2005 Enterprise, IP : 192.168.128.42
不用在 C:\WINDOWS\system32\drivers\etc\hosts 加上 (除非在不同網段)。
192.168.128.41 W2003E-1
192.168.128.42 W2003E-2
也不用另外在 Windows 2003、SQL Server和 SQL Server Agent 去建立帳號來使用。
只有先建立一個 TestDB 資料庫,包含一個 Tabel1 資料表,裡面一筆資料,做測試用。
安裝步驟
一、散發
1.

2.

3.

4.

5.

6.

7.

8

9.

10.

11.

12.

13.

14.

15.

二、發行
1.

2.

3.

4.這裡做點補充說明
「快照式發行集」發行者會把資料庫「整個」做成快照丟出,如果資料庫有點很大,不合適頻繁更新,可能一天更新一次就好。

http://msdn.microsoft.com/zh-tw/library/ms151734.aspx「交易式發行集」發行者第一次會把資料庫整個做成快照丟出,讓訂閱者資料庫和發行者相同,以後都是一筆筆交易丟。

http://msdn.microsoft.com/zh-tw/library/ms151706.aspx「具有可更新訂閱的交易式發行集」一般都是發行者丟出,訂閱者接收和同步,訂閱者不能寫入,避免衝突;此方式則訂閱者可丟資料給發行者(不是丟給散發者)。

http://msdn.microsoft.com/zh-tw/library/ms151794.aspx「合併式發行集」散發者丟出的資料是根據發行者和訂閱者資料合併解決衝突後丟出。

http://msdn.microsoft.com/zh-tw/library/ms151329.aspx本測試選擇預設的「快照式發行集」
5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

三、訂閱
1.

2.
「發送訂閱」是由「散發者」主動送資料給「訂閱者」
「提取訂閱」是由「訂閱者」主動去拿資料

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

四、測試
測試1: 檢查第一次快照是否同步
測試2: 檢查新增資料是否在同步
1.

2.

3.

4.

5.

6.

7.

8.

9.

五、其他
這裡可以修改剛剛建立的「散行」和「訂閱」的屬性。
1.

2.

3.

4.

5.

參考
SQL Server 2005 複寫發行模型概觀
http://msdn.microsoft.com/zh-tw/library/ms152567(SQL.90).aspxSQL Server 2005 複寫教學課程
http://msdn.microsoft.com/zh-tw/library/ms151198(SQL.90).aspxhttp://207.46.16.252/zh-tw/library/aa337389%28SQL.90%29.aspx SQL Server 2005 Express 的複寫作業
http://msdn.microsoft.com/zh-tw/library/ms165700%28SQL.90%29.aspx SQL Server 複寫
http://msdn.microsoft.com/zh-tw/library/ms151198.aspx SQL Server 2008 複寫實作 (推薦)
http://www.dotblogs.com.tw/dotjason/archive/2009/08/03/9819.aspx SQL 2005 資料庫複寫操作文件
http://120.105.54.150/lab/Past_Course/97-2/SQLServer/9.ppt SQL Server 2005的同步複製技術
http://blog.csdn.net/maosenmin/archive/2009/06/02/4236178.aspx
_________________
天道循環,生死不昧,真空妙有,還於本然
諦聽我們的靈魂之聲,所有飄零的靈魂,此世虛幻,此生一夢,生者必死
勢不可去盡,話不可說盡,福不可享盡,規矩不可行盡,凡事太盡,緣分勢必早盡
貼圖空間
viewtopic.php?t=8816