教學課程:設定兩個完全連線的伺服器之間的複寫 (異動)
適用於:SQL Server
異動複寫是處理持續連線伺服器之間移動資料問題的良好解決方案。 您可以使用 [複寫精靈],輕鬆設定及管理複寫拓撲。
本教學課程會為您示範,如何為持續連線的伺服器設定異動複寫拓撲。 如需異動複寫如何運作的詳細資訊,請參閱異動複寫概觀。
您將了解的內容
本教學課程會教您如何使用異動複寫,從一個資料庫將資料發行到另一個資料庫。
在本教學課程中,您將學會如何:
- 透過異動複寫建立發行者。
- 為交易式發行者建立訂閱者。
- 驗證訂閱及測量延遲。
必要條件
本教學課程適合熟悉基本資料庫作業,但對複寫經驗有限的使用者。 開始進行本教學課程之前,您必須先完成教學課程:準備 SQL Server 進行複寫。
若要完成本教學課程,您需要 SQL Server、SQL Server Management Studio (SSMS) 以及 AdventureWorks 資料庫:
在發行者伺服器 (來源) 安裝:
- SQL Server Express 或 SQL Server Compact 以外的任何 SQL Server 版本。 因為這兩種版本無法充任複寫發行者。
AdventureWorks2022
範例資料庫。 為了加強安全性,依預設,不會安裝範例資料庫。
在訂閱者伺服器 (目的地) 安裝任何版本的 SQL Server (SQL Server Compact 除外)。 因為 SQL Server Compact 無法在異動複寫中擔任訂閱者。
下載 AdventureWorks 範例資料庫。 有關在 SSMS 中還原資料庫的指示,請參閱還原資料庫。
注意
相差兩個版本以上的 SQL Server 執行個體不支援複寫。
在 SQL Server Management Studio 中,您用來與發行者和訂閱者連線的登入資料,必須是 sysadmin 固定伺服器角色的一員。 如需此角色的詳細資訊,請參閱伺服器層級角色。
完成本教學課程的估計時間:60 分鐘
為異動複寫設定發行者
在本節中,您會使用 SQL Server Management Studio 建立交易式發行集,以發行 AdventureWorks2022
範例資料庫中 Product 資料表的篩選子集。 此外,您也會將散發代理程式所使用的 SQL Server 登入新增至發行集存取清單 (PAL)。
建立發行集並定義發行項
連線到 Microsoft SQL Server Management Studio 中的發行者,然後展開伺服器節點。
以滑鼠右鍵按一下 [SQL Server Agent],然後選取 [啟動]。 在建立發行集之前,您應該先執行 SQL Server Agent。 如果這樣無法啟動代理程式,您必須從 SQL Server 組態管理員以手動方式加以啟動。
展開 [複寫] 資料夾,然後以滑鼠右鍵按一下 [本機發行集] 資料夾,再選取 [新增發行集]。 此步驟會啟動新的發行集精靈:
在 [發行集資料庫] 頁面上,選取
AdventureWorks2022
,然後選取 [下一步]。在 [發行集類型] 頁面上,選取 [交易式發行集],然後選取 [下一步]:
在 [發行項] 頁面中展開 [資料表] 節點,選取 [產品] 核取方塊。 然後展開 [產品] 並清除 [ListPrice] 和 [StandardCost] 旁的核取方塊。 選取 [下一步]。
在 [Filter Table Rows] \(篩選資料表資料列) 頁面上,選取 [新增]。
在 [新增篩選] 對話方塊中,選取 SafetyStockLevel 資料行。 選取向右箭號,將資料行新增至篩選查詢的篩選陳述式 WHERE 子句。 然後在 WHERE 子句修飾詞中手動鍵入以下內容:
WHERE [SafetyStockLevel] < 500
依序選取 [確定] 和 [下一步]。
選取 [立即建立快照集,並保留快照集為可使用狀態,以初始化訂閱] 核取方塊,然後選取 [下一步]:
在 [代理程式安全性] 頁面上,清除 [Use the security settings from the Snapshot Agent] \(使用快照集代理程式的安全性設定\) 核取方塊。
選取快照集代理程式的 [安全性設定]。 在 [處理帳戶] 方塊中輸入 <Publisher_Machine_Name>\repl_snapshot,提供此帳戶的密碼,然後選取 [確定]。
重複執行先前的步驟,將 <Publisher_Machine_Name>\repl_logreader設定為記錄讀取器代理程式的處理帳戶。 然後選取 [確定]。
在 [完成精靈] 頁面的 [發行集名稱] 方塊中鍵入 AdvWorksProductTrans,然後選取 [完成]:
建立發行集之後,選取 [關閉] 以完成精靈。
若您在嘗試建立發行集時 SQL Server Agent 未處於執行中狀態,則可能會遇到下列錯誤。 此錯誤表示您的發行集已成功建立,但快照集代理程式無法啟動。 如果發生這種情況,您需要啟動 SQL Server Agent,然後手動啟動快照集代理程式。 下一節會提供指示。
檢視快照集產生的狀態
連線到 SQL Server Management Studio 中的發行者,展開伺服器節點,然後展開 [複寫] 資料夾。
在 [本機發行集] 資料夾中,以滑鼠右鍵按一下 [AdvWorksProductTrans],然後選取 [檢視快照集代理程式狀態]:
發行集快照集代理程式作業的目前狀態會隨即顯示。 確認快照集作業已成功,再繼續進行下一節。
若您在建立發行集時 SQL Server Agent 未處於執行中狀態,則當您查看發行集快照集代理程式狀態時,會看到快照集代理程式從未執行。 如果是這種情況,請選取 [啟動] 來啟動快照集代理程式:
若您在此處看到錯誤,請參閱針對快照集代理程式錯誤進行疑難排解。
將散發代理程式新增至 PAL
連線到 SQL Server Management Studio 中的發行者,展開伺服器節點,然後展開 [複寫] 資料夾。
在 [本機發行集] 資料夾中,以滑鼠右鍵按一下 [AdvWorksProductTrans],然後選取 [屬性]。 [發行集屬性] 對話方塊會隨即顯示。
a. 選取 [發行集存取清單] 頁面,然後選取 [新增]。
b. 在 [新增發行集存取] 對話方塊中,選取 <Publisher_Machine_Name>\repl_distribution,然後選取 [確定]。
如需詳細資訊,請參閱複寫程式設計概念。
建立交易式發行集的訂閱
在本節中,您會將訂閱者新增至先前建立的發行集。 本教學課程使用了遠端訂閱者 (NODE2\SQL2016),但您也可在本機將訂閱新增至發行者。
建立訂用帳戶
連線到 SQL Server Management Studio 中的發行者,展開伺服器節點,然後展開 [複寫] 資料夾。
在 [本機發行集] 資料夾中,以滑鼠右鍵按一下 AdvWorksProductTrans 發行集,然後選取 [新增訂閱]。 [新增訂閱精靈] 會隨即啟動:
在 [發行集] 頁面上,選取 [AdvWorksProductTrans],然後選取 [下一步]:
在 [散發代理程式位置] 頁面上,選取 [Run all agents at the Distributor] \(在散發者端執行所有代理程式\),然後選取 [下一步]。 如須提取和推送訂閱的詳細資訊,請參閱訂閱發行集。
在 [訂閱者] 頁面上,如未顯示訂閱者執行個體的名稱,請選取 [新增訂閱者],然後從下拉式清單選取 [新增 SQL Server 訂閱者]。 此步驟會開啟 [連線至伺服器] 對話方塊。 輸入訂閱者執行個體的名稱,然後選取 [連線]。
在新增訂閱者後,選取您訂閱者執行個體名稱旁的核取方塊。 然後在 [訂閱資料庫] 下選取 [新增資料庫]。
[新增資料庫] 對話方塊會隨即開啟。 在 [資料庫名稱] 方塊中輸入 ProductReplica,依序選取 [確定] 和 [下一步]:
在 [散發代理程式安全性] 頁面上,選取省略符號 (...) 按鈕。 在 [處理帳戶] 方塊中輸入 <Publisher_Machine_Name>\repl_distribution,輸入此帳戶的密碼,然後依序選取 [確定] 和 [下一步]。
選取 [完成] 接受其餘頁面的預設值,並完成精靈。
在訂閱者端設定資料庫權限
在 SQL Server Management Studio 中連線到訂閱者。 展開 [安全性] 並以滑鼠右鍵按一下 [登入],然後選取 [新增登入]。
a. 在 [一般] 頁面的 [登入名稱] 下,選取 [搜尋] 並新增 <Subscriber_Machine_Name>\repl_distribution 的登入。
b. 在 [使用者對應] 頁面上,授與 ProductReplica 資料庫的登入 db_owner。
選取 [確定] 關閉 [新增登入] 對話方塊。
檢視訂閱的同步處理狀態
在 SQL Server Management Studio 中連線到發行者。 展開伺服器節點,並展開 [複寫] 資料夾。
在 [本機發行集] 資料夾中,展開 [AdvWorksProductTrans] 發行集,以滑鼠右鍵按一下 ProductReplica 資料庫中的訂閱,然後選取 [檢視同步處理狀態]。 目前的訂閱組織狀態會隨即顯示:
若在 [AdvWorksProductTrans] 下看不到訂閱,請選取 F5 鍵重新整理清單。
如需詳細資訊,請參閱
測量複寫延遲
在本節中,您會使用追蹤 Token 來驗證複寫至訂閱者的變更,並判斷延遲。 延遲是發行者端做的變更出現在訂閱者端所花費的時間。
在 SQL Server Management Studio 中連線到發行者。 展開伺服器節點,再以滑鼠右鍵按一下 [複寫] 資料夾,然後選取 [啟動複寫監視器]:
在左窗格中展開發行者群組,展開發行者執行個體,然後選取 AdvWorksProductTrans 發行集。
a. 選取 [追蹤 Token] 索引標籤。
b. 選取 [插入追蹤]。
c. 在下列資料行中檢視追蹤 Token 的經過時間: [發行者到散發者]、 [散發者到訂閱者]、 [延遲總計]。 [Pending] \(暫止\) 值表示 Token 尚未到達指定點。
如需詳細資訊,請參閱