Microsoft SQL Server 2005複寫機制實作
軟體環境:
Windows Server 2003 R2中文標準版 with SP2
SQL Server 2005中文標準版 with SP2,以預設具名實體安裝
均以Microsoft Update更新至最新版本
設定值:
主機名稱:SERVER1
IP位址:192.168.5.100 / 255.255.255.0
不加入網址,採預設的工作群組「WORKGROUP」
(Windows帳號)
administrator 密碼:1
agent 密碼:11 新建,加入administrators群組
(SQL Server帳號)
sa 密碼:111 取消強制執行密碼原則
主機名稱:SERVER2
IP位址:192.168.5.200 / 255.255.255.0
不加入網址,採預設的工作群組「WORKGROUP」
(Windows帳號)
administrator 密碼:2
agent 密碼:22 新建,加入administrators群組
(SQL Server帳號)
sa 密碼:222 取消強制執行密碼原則
設定SQL Agent使用本機agent作為服務帳號(以SERVER1為例):
1. 啟動「SQL Server組態管理員」
2. 在SQL Server Agent(MSSQLSERVER)上按右鍵à「內容」
3. 在內容中設定使用「這個帳戶」,並填入以下內容:
帳戶名稱:.\agent
密碼:11
確認密碼:111
4. 填好後按確定,會出現以下視窗,按「是」
5. 該服務會重新啟動,登入身分為agent
6. 同方式設定SERVER2
註:從「SQL Server組態管理員」中設定SQL Server Agent的啟動帳戶,與從「系統管理工具」中的「服務」設定,最大的差別是會同時將該帳號加入SQLServer2005SQLAgentUser$ComputerName$InstanceName安全群組。若不如此,則在設定複寫時,記錄讀取器代理程式(Log Reader Agent)在執行時會產生問題。
http://support.microsoft.com/kb/911305/en-us
設定agent帳戶在SQL Server上的權限
1. 開啟Microsoft SQL Server Management Agent,並以Windows驗證登入SERVER1
2. 展開「安全性」à「登入」,並在右邊空白處按右鍵à「新增登入」
3. 輸入「SERVER1\agent」。並選擇預設資料庫為後續要用來複寫的資料庫「Adventure Works」(非必要)。
4. 在「伺服器角色」中,勾選「sysadmin」
5. 在「使用者對應」中勾選「AdventureWorks」,並勾選下方「資料庫角色成員資格」中的「db_owner」。
設定發行(Publisher)
1. 於「複寫」上按右鍵à「發行者屬性」
2. 於「發行者資料庫」中,對AdventureWorks勾選「交易式」。
設定散發(Distributor)
1. 於「複寫」上按右鍵à「設定散發」
2. 出現「設定散發精靈」視窗,按「下一步」
3. 要設定SERVER1為散發者(Distributor),直接按「下一步」
4. 預設快照集檔案會放置於C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Repldate,因為要透過網路進行複寫,因此改用分享資料夾的方式,如\\SERVER1\Repldata。註:該資料夾至少必須給快照集代理程式(Snapshot Agent)寫入(write)的權限及散發代理程式(Distributor Agent)讀取(read)的權限。
5. 設定散發資料庫,採預設值即可。
6. 設定發行者(Publisher),採預設的SERVER1即可。註:本例中發行者與散發者均位於SERVER1上。
7. 勾選「設定散發」與「產生含有設定散發之步驟的指令碼檔案」(非必要)。
8. 設定指令碼存放的位置與檔名。
9. 完成散發的設定
10. 完成設定
啟用複寫監視器
1. 在「複寫」上按右鍵à「啟用複寫監視器」
2. 可看到SERVER1已設定複寫,但尚未建立任何發行集(publication)與訂閱(subscribe)
設定發行集(publication
1. 於「複寫」à「本機發行集」上按右鍵à「新增發行集」
2. 出現「新增發行集精靈」,按「下一步」
3. 選擇要做為發行集的資料庫,本例中為AdventureWorks。註:一個發行集僅能包含一個資料庫中的部份或全部。
4. 本例中發行集類型選擇「交易式發行集」
註:
交易式發行集:
訂閱者接收到已發行資料的初始快照集之後,發行者就會將交易資料流傳送給訂閱者。
具有可更新訂閱的交易式發行集:
SQL Server 訂閱者接收到已發行資料的初始快照集之後,發行者就會將交易資料流傳送給 SQL Server 訂閱者。來自訂閱者端的交易會套用到發行者端。
合併式發行集:
訂閱者接收到已發行資料的初始快照集後,發行者和訂閱者即可獨立更新已發行資料。變更會定期合併。Microsoft SQL Server Compact Edition 僅能訂閱合併式發行集。
5. 選擇要做為發行集的發行項,可為資料表或資料表中特定欄位。註:資料表必須含有主索引鍵。
6. 設定篩選條件(非必要),可按「加入」,以WHERE陳述式進行篩選
7. 勾選「立即建立快照集,並保留快照集為可使用狀態,以初始化訂閲」。
8. 設定代理程式安全性,按「安全性設定」
9. 設定快照集代理程式安全性使用SERVER1\agent執行
10. 設定「記錄讀取器代理」設定與「快照集代理程式」相同。
11. 勾選「建立發行集」與「產生具建立發行集步驟的指令碼檔案」(非必要)
12. 設定指令檔存放位置與檔名
13. 設定發行集名稱。本例中為「FirstPublication」
14. 完成建立發行集
15. 建立完成的發行集會出現在「複寫」à「本機發行集」下,中括號中為發行集所涵括的資料庫,後為發行集名稱。本例中為[AdventureWorks]:FirstPublication
啟用複寫監視器
1. 於複寫監視器中可看到一個發行集,狀態為確定。
2. 於發行集中,查看「警告與代理程式」中,「快照集代理程式」的狀態為「已完成」或「正在執行」,「記錄讀取器代理程式」的狀態為「已完成」
設定「訂閱」(Subscriber)
1. 於發行集上按右鍵à「新增訂閱」
2. 出現「新增訂閱精靈」
3. 選擇發行集
4. 設定發送訂閱(Push)或提取訂閱(Pull)。本例中為發送訂閱。
5. 設定訂閱者,按「加入訂閱者」,選擇「加入SQL Server訂閱者」
6. 出現設定連接的畫面,輸入SERVER,sa,並用SERVER2上sa的密碼222
7. 選擇「訂閱資料庫」中的<新增資料庫>
8. 於「新增資料庫」畫面中,輸入資料庫名稱,本例中為「TEST」,並按確定
9. 按下一步後,設定散發代理程式安全性,按「…」
10. 設定以SQL Server Agent服務帳號(agent)執行散發代理程式,並設定以SERVER2上sa,及其密碼222連接至訂閱者。
11. 安全性設定完成
12. 設定訂閱排程
13. 依需要設定排程
14. 選擇立即初始化
15. 勾選「建立訂閱」與「產生含有建立訂閱之步驟的指令碼檔案」(非必要)
16. 設定指令檔存放位置與檔名
17. 完成設定
18. 建立訂閱完成
19. 設定完成的訂閱位於發行集下,前中括號中為訂閱的伺服器,後中括號中為所抄寫的目的資料庫。本例中為[SERVER2].[TEST]
啟動複寫監視器
1. 發行集中目前有一個訂閱,且狀態是「正在執行」
2. 查看發行者到散發者歷程記錄,狀態為「正在執行」
3.查看散發者到訂閱者歷程記錄,可看到複寫的過程正在進行。
4. 複寫完畢,訊息為「沒有可用的複寫交易」
沒有留言:
張貼留言