複寫類型:
在複寫的架構下,個人認為最佳的方式是可以多台同時進行讀寫,而且資料交換的時間又短(適交易量而定,但這是所有複寫類型中資料交換最快的一種),如下圖左邊的部份,但導入前需特別注意前端應用程式設計的部份,以免造成資料的衝突,最常見的是當資料表主鍵設計時,常常只利用流水號來進行,但是這樣的方式並不適合,容易造成資料寫入時的問題,尤其是當你表格為 Master/Detail 時,更容易有問題。在不改變架構的情況下,其實可以參考右邊的架構,也就是一台負責寫入,其他台的電腦負責讀取,這種情況下需要調整的程式就會非常的少,但是卻可以達到很大的效益,而且當你的交易越多或有效能上的問題時,就可以一直串連並分散交易,達到擴充的功能。
在左邊的架構中前端的主機可以對A與B之間一台進行寫入的動作,之後資料庫端就會自動進行資料的同步,在本章中我們將介紹SQL Server 2005之後交易式複寫中擴充的一個新功能,點對點交易式複寫 (Peer-to-Peer Transactional Replication),讓A電腦與B電腦同時可以有讀寫的功能,另外透過NLB接收前端的需求,然後再平衡的分配給後端資料庫,進行達到 SQL Server - Load Balancing 的架構。
配備說明:
第一台
電腦名稱:WIN-2008R2-1
OS:Windows 2008R2 EnterpriseDB:Windows 2008R2 Enterprise
說明:第一個節點。
第二台
電腦名稱:WIN-2008R2-2
OS:Windows 2008R2 Enterprise
DB:Windows 2008R2 Enterprise
說明:第二個節點
設定流程:
NLB (Network Load Balancing) 設定:
關於NLB的設定,在請大家參考我之前的著作 [網路負載平衡 - Reporting Service 與 NLB 的結合],其中有介紹到NLB的部份,我就不在此特別說明,謝謝。
點對點式複寫功能 (Peer-to-Peer Replication) 設定:
1、設定第一台的發行集。
1-1. 登入第一台電腦,並開啟SQL Server Management Studio。
1-2. 點選 [複寫] -> [本機發行集] -> [新增發行集]。
1-3. 選擇你要進行複寫的資料庫。
1-4. 請選擇 [交易式發行集]。
1-5. 選擇要進行複寫的資料表,可以全部選取。
PS:這部份如果有效能上的考量時,你可以選擇特定的資料表進行複寫即可,由其在合併式複寫上,越多的表格更由於造成資料複寫上的延遲。
1-6. 如果有需要特別設定篩選的資料時,請在此設定或請選擇下一步直接跳過即可。
1-7. 由於我是透過手動同步各個節點的資料庫,所以在此處不設勾選。
1-8. 設定複寫代理程式安全性,請記得最好使用網域帳號進行。
1-9. 請勾選 [建立發行集],如果你想保留此次的設定,你可以勾選產生指令碼,日後直接套用即可。
1-10. 請輸入發行集的名稱。
1-11. 請再點選 [複寫] -> [本機發行集] -> [發行集名稱] -> [屬性]。
1-12. 請將 [訂閱選項] -> [點對點複寫] -> [允許點對點訂閱] 設定成 [True],然後選確定。
2、設定第二台主機的散發
2-1. 登入第二台
2-2. 點選 [複寫] -> [設定散發]
2-3. 選擇第一項,也就是本身為散發者。
2-4. 請設定第二台主機上的一個指定目錄進行分享,而且讓第一台也可以進行存取與寫入。
2-5. 此步驟請依照預設值即可,如有需要再自行修改。
2-6. 設定發行者與散發資料庫,並選擇下一步。
2-7. 請勾選 [設定散發],如果你想保留此次的設定,你可以勾選產生指令碼,日後直接套用即可
2-8 設定完成後,請將你設定複寫的資料庫進行完整備份,然後還原到第二台上,藉以確保第一台與第二台上的資料與Schema都相同。
3、設定點對點式複寫功能 (Peer-to-Peer Replication)
3-1. 登入第一台
3-2. 選擇 [複寫] -> [本機發行集] -> [發生集名稱] -> [設定點對點拓撲]
3-3. 選擇發行集。
3-4. 在空白處點選滑鼠右鍵 -> [加入新的對等節點]。
3-5. 登入你要加入的節點主機。
3-6. 選擇加入的節點中的資料庫,請注意此處的識別碼必須都不相同。
3-7. 加入後你就可以看而有一條雙箭頭的線將兩個節點連結。
3-8. 設定記錄讀取器代理程式的安全性,這個部份也是請使用網域帳號進行設定。
3-9. 如果每一個節點的安全性設定皆相同時,可以勾選下方的選項即可。
3-10 跟上一個步驟相同。
3-11. 由於在2-8的時候已經手動的初使化每一個資料庫了,所以請選擇第一個選項。
3-12 最後在二台的 [本機發行集] 上你就可以都有相同的發行集名稱。
關於複寫的進作情況,你可以透過 [複寫監視器] 進行確認,當然這個架構在使用上,需特別注意衝突的問題,通常都是前端程式設計的不小心所造成,而你可以從複寫監視器或SQL Server Error Logs中看出,但此架構並不會自動進行衝突的排除,所以必須手動排除,所以在系統上線前請多多測試與前端程式的部份,以免日後的衝突發生,造成資料的不正確。
參考連結:
SQL Server 的分散式資料複寫技術
http://technet.microsoft.com/zh-tw/library/dd125513.aspx
SQL Server Replication
http://msdn.microsoft.com/en-us/library/ms151198.aspx
Managing SQL Server 2005 Peer-to-Peer Replication
http://technet.microsoft.com/en-us/magazine/2006.07.insidemsft.aspx
Peer-to-Peer Transactional Replication
http://technet.microsoft.com/en-us/library/ms151196.aspx
How to: Configure Peer-to-Peer Transactional Replication (SQL Server Management Studio)
http://technet.microsoft.com/en-us/library/ms152536.aspx
使用複寫監視器監視複寫
http://msdn.microsoft.com/zh-tw/library/ms151780.aspx
關鍵字:Peer-to-Peer Replication、NLB、Network Load Balancing、Distribution Architecture、Peer-to-Peer Transactional Replication


















































