立即分享:

1. 簡介 SQL Server 複製

1.1 什麼是 SQL Server 可複製?

SQL Server 複製是一系列技術,用於將資料和資料庫物件從一個資料庫複製並分發到另一個資料庫,然後在資料庫之間進行同步以保持一致性。此功能使您能夠在不同的伺服器和位置建立和維護資料的多個副本,從而確保資料的可用性和可靠性。

1.2 複製的目的和益處

SQL Server 複製功能滿足多項關鍵業務需求,並為資料庫管理和資料分發提供了顯著優勢:

  • 數據在不同地點的分佈: 複製功能使您能夠在區域辦事處或全球各地共享數據,透過確保本地存取所需數據來提高營運效率。這可以降低網路延遲,並為地理位置分散的用戶提供更好的效能。
  • 高可用性 以及災難復原: 透過在多台伺服器上維護關鍵資料的副本,複製功能提供了冗餘,從而抵禦硬體故障和災難。如果主伺服器發生故障,複製的副本可以作為備用資料來源,最大限度地減少停機時間和資料遺失。
  • 負載平衡和可擴展性: 複製將讀取操作分佈到多個伺服器上,防止單一伺服器成為效能瓶頸。這種方法可以提升系統效能,並允許您的基礎架構隨著資料和使用者需求的成長而橫向擴展。
  • 即時報告與分析: 將報表和分析查詢卸載到複製伺服器可以減輕生產資料庫的負載。使用者可以針對近乎即時的資料執行複雜的分析查詢,而不會影響營運系統,從而確保效能和資料的新鮮度。
  • 數據整合與整合: 複製功能有助於將來自不同來源的資料合併成一個統一的視圖。這對於擁有多個分支機構、需要在總部匯總資料的組織,或是需要從分散式營運系統建立集中式資料倉儲的組織來說,尤其重要。

2. SQL Server 複製架構和組件

SQL Server 複製架構由多個相互關聯的元件構成,這些元件協同工作,以在資料庫基礎架構中分發和同步資料。本節將探討核心元件,包括發布者、分發者、訂閱者、出版物、文章、訂閱以及協調它們之間資料流的代理:

  • 發布者: 出版商是 SQL Server 託管一個或多個包含待複製資料的資料庫的執行個體。它在複製拓撲中充當權威來源。
  • 經銷商: 分銷商是 SQL Server 分發實例負責管理發布者和訂閱者之間的資料流。分發實例託管分發資料庫,該資料庫儲存複製元資料和事務資訊。
  • 訂戶: 訂閱者是 SQL Server 訂閱者實例用於接收和儲存來自發布者的複製資料。單一訂閱者執行個體可以託管多個訂閱者資料庫,每個資料庫接收來自不同發布者的資料。
  • 發布: 發布文件定義了哪些資料將被複製以及如何將其分發給訂閱者。它將相關文章分組,並建立適用於所有包含物件的複製方法。
  • 文章: 文章是複製的基本構建塊,代表將分發給訂閱者的單一資料庫物件。
  • 認購: 訂閱建立了出版物與訂閱者之間的關係,定義了資料如何以及何時傳遞到目標資料庫。
  • 代理商: 代理是專門負責在複製元件之間移動和同步資料的實際進程。

SQL Server 複製架構和組件

3. 類型 SQL Server 複製

SQL Server 它提供多種複製類型,每種類型都針對特定的資料分發場景和業務需求而設計。了解每種類型的特性、優點和限制對於為您的環境選擇合適的方案至關重要。

3.1 快照複製

快照複製會在特定時間點對要發佈的資料進行快照,然後將完整的資料副本分發給訂閱者。在產生下一個快照之前,它不會監控後續的變更。快照複製是最簡單的複製方式,因此適用於資料變更頻率較低或允許資料略微過時的場景。

常見用例包括分發定期更新的參考資料(例如價格表或匯率)、為資料倉儲提供初始資料集,以及在某些情況下,完全刷新資料比追蹤單一變更更為可取。例如,一家公司可以使用快照複製每天向分公司分發一次更新後的產品目錄。

快照複製的主要優點是簡單易用、維護成本低,且無需主鍵即可複製資料。然而,它也存在一些顯著的缺點,例如由於表鎖導致快照生成時影響較大、更新延遲較高,以及對於大型資料集或頻繁變化的資料效率低下。此外,訂閱節點所做的任何修改都會在套用下一個快照時遺失。

3.2 事務複製

交易複製透過在交易發生時進行複製,將發布者的變更近乎即時地傳遞給訂閱者。它首先建立一個初始快照以建立基線,然後持續監控交易日誌,尋找已發布文章的更改,並將這些更改增量式地傳遞給訂閱者。

交易複製非常適合需要高吞吐量和低延遲的伺服器間場景。常見的應用場景包括:透過將讀取操作卸載到訂閱伺服器來提高可擴展性和可用性;支援近即時資料的資料倉儲和報表;將來自多個網站的資料整合到中心位置;以及將批次任務卸載到專用伺服器。例如,電子商務平台可以使用事務複製來維護跨區域資料庫的同步庫存資料。

交易複製的優點包括低延遲資料傳輸、大交易量下的高吞吐量,以及允許在訂閱節點進行非複製修改。缺點包括與快照複製相比更複雜、複製表需要主鍵,以及如果發生衝突(例如訂閱節點上的主鍵衝突),複製可能會中斷。

3.3 合併複製

合併複製專為訂閱者需要在離線或間歇性網路連線環境下工作,並在網路連線恢復後同步變更而設計。這種複製類型允許發布者和訂閱者獨立地更改數據,使用觸發器和元數據表追蹤更改,並在同步期間自動合併修改。

合併複製專為行動應用程式和分散式伺服器環境而設計,適用於資料自主變更的情況。其應用場景包括:行動用戶離線工作並在稍後同步的銷售自動化系統;獨立運作並定期整合資料的銷售點系統;以及多個站點需要更新共享資料的分散式應用程式。例如,零售連鎖店可以使用合併複製,使每個門市都能管理本地庫存,同時與中央倉庫系統同步。

合併複製的優點包括支援可自主修改的訂閱者、對間歇性網路連線的容忍度以及靈活的衝突解決機制。缺點包括設定和維護更加複雜、追蹤元資料和觸發器帶來的效能開銷、向表中新增唯一識別碼列,以及可能出現的需要管理和解決的衝突。

3.4 點對點複製

對等複製基於事務複製,允許多個伺服器實例(三個或更多節點)作為平等的對等節點,每個節點同時充當發布者和訂閱者。在這種拓撲結構中,所有節點都維護著完全相同的資料副本,並且可以處理讀取和寫入操作,從而提供真正的分散式多主環境。

點對點複製適用於需要橫向擴展讀取操作和高可用性的應用。其應用場景包括:在保持資料一致性的同時,將目錄查詢分佈到多個節點的 Web 應用;需要透過逐個節點離線進行維護或升級而無需停機的場景;以及資料中心位於不同區域的全球應用。例如,一家全球軟體支援機構可以在不同時區的辦公室之間使用點對點複製,以便每個地點都能在本地存取最新資料。

對等複製的優點包括:透過橫向擴展提升讀取效能、利用多個活動節點實現更高的可用性以及近乎即時的資料一致性。缺點包括:需要企業版、多節點拓樸管理複雜、所有節點必須使用相同的模式和數據,以及寫入作業未正確分區時可能出現的衝突。

3.5 雙向複製

雙向複製是一種專為雙伺服器環境設計的事務複製拓撲,適用於兩台伺服器需要相互交換變更的情況。每台伺服器發布數據並訂閱來自另一台伺服器的相同數據,從而創建一個簡單的雙向同步流。雖然對等複製也可以支援兩個節點,但對於這種特定場景,雙向複製能夠提供更高的效能。

雙向複製適用於需要兩台活動伺服器並保持資料同步的場景,例如高可用性的雙活配置,或地理位置分散且每個網站都需要本地寫入權限的應用。這種拓撲結構要求精心設計應用,以劃分資料更新並防止衝突。

其優點包括:針對雙伺服器場景優化的效能、相比點對點複製更簡單的配置、近乎即時的同步以及比合併複製更低的開銷。缺點包括:僅限兩台伺服器、缺乏內建衝突解決機制(需要精心設計應用程式)以及需要合理的分區策略來防止衝突。

3.6 可更新訂閱

可更新訂閱擴展了交易複製的功能,允許訂閱者偶爾更改複製的數據,這些更改隨後會傳播回發布者和其他訂閱者。與專為頻繁雙向更新而設計的合併複製或對等拓撲結構不同,可更新訂閱適用於主要資料流為單向(發布者到訂閱者)但訂閱者偶爾需要進行更正或更新的場景。

可更新訂閱適用於大多數更新發生在發布方,但偶爾也需要在訂閱方進行更新的場景,例如主要讀取資料但需要進行本地更正或更新的現場辦公室。這種拓撲結構需要精心規劃,以最大限度地減少衝突並確保資料一致性。

主要優點包括允許訂閱者進行有限的寫入操作,同時保持交易複製的效能特性。缺點包括複雜性增加、可能出現需要解決的衝突、立即更新模式下兩階段提交協議帶來的效能開銷,以及所有複製表都必須具有主鍵的要求。

3.7 不同類型重複實驗的比較

複製類型 更新時間 出版商數量 方向 使用方案
快照 時間點 1 單向(發布者→訂閱者) 不經常更改的參考資料(價格表、匯率)
交易性 近實時 1 單向(發布者→訂閱者) 高吞吐量場景(電子商務庫存、資料倉儲、報表)
合併 週期性(連接時) 1 雙向(發布者↔訂閱者) 行動應用、離線工作人員(銷售自動化、現場服務)
點對點 近實時 多(3 個或以上) 雙向(所有節點) 全球多資料中心部署(全球各地辦事處,具有本地讀寫權限)
雙向 近實時 2 雙向(兩台伺服器) 雙資料中心雙活配置(雙站點高可用性)
可更新訂閱 近實時 1 主要為單向更新(偶爾會有反向更新) 主要負責閱讀但偶爾也會更新(本地更正)的分支機構

4. 設定 SQL Server 複製

4.1 先決條件和要求

4.1.1 軟體要求

SQL Server 複製需要相容 SQL Server 拓撲中所有參與者的版本必須相同。分發者的版本必須等於或高於發布者的版本,而訂閱者的版本可以與發布者的版本相差不超過兩個版本。例如, SQL Server 2016 年發布者可以複製到 SQL Server 2012、2014、2016、2017 或 2019 年的訂閱用戶。

4.1.2 權限要求

配置複製需要在每個層級擁有特定的權限。 sysadmin 固定伺服器角色的成員可以執行所有複製設定任務。要獲得更細粒度的權限,使用者需要同時是發布伺服器和訂閱伺服器資料庫的 db_owner 資料庫角色成員。

4.2 步驟 1:配置分發

配置分發是設定的第一步 SQL Server 複製。

使用以下方式設定分發 SQL Server 管理工作室:

  1. 連接到 SQL Server 實例 SQL Server 管理工作室。
  2. 在物件資源管理器中,以滑鼠右鍵按一下 複製 文件夾並選擇 配置分發.
    開始配置分發 SQL Server 複製。
  3. 在「設定分發精靈」中,按一下 下一則 在歡迎頁面上。
    設定分發精靈
  4. 上 合作夥伴 在該頁面上,根據您的拓撲要求選擇以下選項之一:
    • 當地經銷商選擇“伺服器名稱將作為其自身的分發伺服器; SQL Server 如果您希望發布者和分發者在相同實例(目前實例)上執行,則會建立分發資料庫和日誌。此配置設定更簡單,適用於規模較小的環境,或發布者和分發者之間的網路延遲會導致問題的情況。
    • 遠端分銷商選擇“使用下列伺服器作為分發伺服器”,然後按一下 新增 如果您希望將分發處理卸載到單獨的實例,請指定遠端分發伺服器。此配置透過將工作負載分配到多個伺服器上,在複製磁碟區較大時提高效能。您需要提供遠端分發伺服器名稱,並指定發布伺服器用於連接到分發伺服器的密碼。

    配置分配器 SQL Server 複製

  5. 點擊 下一則 指定快照資料夾位置。請使用 UNC 路徑(例如 \\servername\share\folder)而不是本機路徑,以確保可透過網路存取。
    在「設定分發精靈」中設定快照資料夾
  6. 上 分發資料庫 在該頁面上,接受預設的分發資料庫名稱(通常為「distribution」)或指定自訂名稱,然後配置資料和日誌檔案位置。
    配置分發資料庫 SQL Server 複製
  7. 上 出版商 在該頁面上,確認目前伺服器已啟用為發布伺服器。如果將目前伺服器配置為分發伺服器,則可以新增其他將使用此分發伺服器的發布伺服器。
    在以下位置配置發布者: SQL Server 複製
  8. 查看精靈操作並點選 完 配置分發。
    完成配置 SQL Server 複製

4.3 步驟 2:建立出版物

配置分發之後,下一步是建立發布,定義哪些資料物件將複製到訂閱者。

使用以下方式建立出版物 SQL Server 管理工作室:

  1. 在物件資源管理器中,展開 複製 文件夾中。
  2. 右鍵單擊 本地出版品 並選擇 新出版品.
  3. 「新建出版品精靈」啟動;點選 下一則 在歡迎頁面上。
  4. 從以下位置選擇要發佈的資料庫: 出版品資料庫 此頁面。這將自動啟用在所選資料庫上發佈內容的功能。
  5. 上 出版品類型 在頁面上,選擇複製類型: 快照發布, 交易出版品, 點對點出版, 或者 合併發布.
  6. 上 相關文章 頁面,展開 檯 節點並選擇要包含在文章中的表格。
  7. (可選)擴展 存儲過程, 觀看數或其他物件類型,以包含其他文章。
  8. 點擊 文章屬性 配置篩選或其他文章特定設定。
  9. 上 篩選表格行 頁面,如有需要,新增行篩選器。
  10. 上 快照代理 在此頁面,選擇何時建立快照:立即建立、在特定時間建立或按計畫建立。
  11. 上 代理安全 在頁面上,指定快照代理的安全性上下文。
  12. 上 巫師行動 頁面,選擇 創建出版品.
  13. 請提供出版品名稱並點選 完.
    在以下位置建立新出版物 SQL Server 複製

4.4 步驟 3:建立訂閱

創建出版物之後,下一步是建立訂閱,將出版物連接到訂閱者資料庫。

訂閱可以是推送式訂閱(由經銷商管理)或拉取式訂閱(由訂閱者管理)。主要區別在於建立訂閱的位置以及選擇的代理位置,這決定了訂閱的操作方式(推送或拉取)。

推送訂閱 (由經銷商管理):

  1. 上 發行人 伺服器,展開 複製 -> 本地出版品.
  2. 右鍵單擊該出版物並選擇 新訂閱.

拉取訂閱 (由訂閱者管理):

  1. 上 訂戶 伺服器,展開 複製, 右鍵點擊 本地訂閱,然後選擇 新訂閱.
  2. 上 出版物 頁面,單擊 發現 SQL Server 出版者 並連接到發布伺服器。

兩種訂閱類型通用的嚮導步驟:

  1. 在「新訂閱精靈」中,按一下 下一則 在歡迎頁面上。
  2. 選擇出版品並點擊 下一則.
  3. 上 分銷代理商地點 在頁面上,選擇代理位置:
    • 推送訂閱選擇「在發行商執行所有代理程式」-發行商會將變更推送給訂閱者。
    • 拉取訂閱選擇「在每個訂閱者上執行每個代理程式」-每個訂閱者將從分發者拉取變更。
  4. 上 訂閱 在頁面上,選擇現有訂閱伺服器或點擊 添加用戶 新增的。
  5. 對於每個訂閱者,選擇目標資料庫或建立一個新資料庫。 請注意: 訂閱資料庫必須與發布商資料庫不同,即使使用相同的資料庫。 SQL Server 實例。
  6. 上 分銷代理安全 在頁面上,按一下每個訂閱的屬性按鈕來配置安全性上下文。
  7. 上 同步計劃 在此頁面,選擇連續同步或計劃同步。
  8. 上 初始化訂閱 頁面,選擇 立即 在精靈完成期間初始化或 首次同步.
  9. 查看精靈操作並點選 完.
    建立新訂閱 SQL Server 使用新訂閱精靈進行複製。

5. 監控和管理 SQL Server 複製

5.1 使用複製監視器監控複製

啟動複製監視器:

  1. In SQL Server 管理工作室,擴展 複製 在物件資源管理器中。
  2. 右鍵單擊 複製 並選擇 啟動複製監視器.
  3. 如果沒有註冊發布商,請點選 新增發布者 在左側窗格中。
  4. 選擇 新增 SQL Server 出版者 並連接到發布伺服器。
  5. 發布者顯示在左側窗格中,其中包含可展開的節點,用於顯示出版品和訂閱資訊。

使用複製監視器來監視 SQL Server 複製。

5.2 效能監控

5.2.1 監視器延遲

複製延遲是指發布伺服器上的變更與訂閱伺服器上套用該變更之間的時間延遲。監控延遲可確保資料新鮮度滿足業務需求。

使用複製監視器可在「所有訂閱」標籤上查看延遲指標。 「延遲」欄位顯示平均延遲(以秒為單位)。對於交易複製,追蹤令牌透過插入標記交易來提供精確的延遲測量,這些標記交易會在複製管道中進行追蹤。

使用追蹤令牌:

  1. 在複製監視器中,選擇一個事務發布。
  2. 在操作欄點擊 追蹤令牌 標籤。
  3. 點擊 插入追蹤器 注入標記交易。
  4. 監控代幣從發布者到分發者再到訂閱者的整個過程。
  5. 看看每個環節所花費的時間,找出瓶頸所在。

插入追蹤令牌以獲取更精確的延遲測量結果 SQL Server 複製

5.2.2 監控吞吐量

吞吐量衡量的是一段時間內複製的資料量,通常以每秒交易數或每秒命令數表示。監控吞吐量可確保複製速度能跟上發布者的活動速度。

雖然複製監視器提供基本的同步狀態,但傳輸速率和詳細的吞吐量指標在圖形使用者介面 (GUI) 中不可見。請使用針對分發資料庫的 T-SQL 查詢來監視吞吐量:

USE distribution
GO

-- Direct join to avoid subquery
SELECT TOP 20
    h.time AS [Time],
    a.name AS [Agent Name],
    h.runstatus AS [Status],
    h.delivered_transactions AS [Delivered Transactions],
    h.delivered_commands AS [Delivered Commands],
    h.delivery_rate AS [Delivery Rate (commands/sec)],
    h.delivery_latency AS [Delivery Latency (ms)],
    h.comments AS [Comments]
FROM MSdistribution_history h
JOIN MSdistribution_agents a ON h.agent_id = a.id
WHERE a.name LIKE '%MyPublication2%'
AND h.runstatus IN (2, 3, 4, 6)
ORDER BY h.time DESC
GO

狀態碼:1 = 開始,2 = 進行中,3 = 成功,4 = 空閒,5 = 重試,6 = 失敗。將交付速率與發布者事務速率進行比較,以識別複製滯後的情況。性能計數器 Windows 性能監視器 為每個複製代理程式提供額外的吞吐量指標。

5.2.3 識別瓶頸

複製瓶頸可能出現在拓樸結構的多個位置。在發布伺服器上,快照產生時間過長或日誌讀取代理延遲可能表示資源受限。在複製活動期間,應監控發布伺服器上的 CPU、記憶體和磁碟 I/O。

在分發伺服器端,檢查分發資料庫中是否存在累積的交易。大量未分發的命令表明分發伺服器無法跟上交付速度。監控分發伺服器資源,並考慮在高交易量場景下使用專用遠端分發伺服器。

檢查未分發的命令,以查找效能瓶頸。 SQL Server 複製

在訂閱端,變更應用緩慢可能是由於資源不足、索引缺失或插入操作受限等原因造成的。當分發代理程式運行時,應監控訂閱端資源利用率和查詢效能。組件間的網路頻寬限制也會導致瓶頸,尤其是在處理大數據量時。

5.3 管理複製代理

5.3.1 啟動和停止代理

啟動或停止複製代理:

  1. In SQL Server 管理工作室,擴展 SQL Server 經紀人 -> 工作.
  2. 找到複製代理作業(名稱通常包含發布和訂閱者資訊)。
  3. 右鍵單擊該作業並選擇 開始工作 or 停止工作.

啟動或停止複製代理 SQL Server 複製

5.3.2 配置代理設定檔

代理設定檔包含控制代理行為的參數集。 SQL Server 提供針對常見場景最佳化的預設設定文件,您還可以根據特定需求建立自訂設定檔。

修改代理設定檔:

  1. 在物件資源管理器中,展開 複製.
  2. 右鍵單擊 複製 並選擇 經銷商屬性.
  3. 在操作欄點擊 設定檔預設值 按鈕。
  4. 從下拉式選單中選擇代理類型(快照、日誌讀取器、分發或合併)。
  5. 選擇個人資料並點擊 物業 查看參數值。
  6. 點擊 新的配置文件 基於現有設定檔建立自訂設定檔。
  7. 根據需要修改參數並單擊 OK.

設定代理設定檔

透過編輯訂閱屬性並從「代理設定檔」下拉式選單中選擇所需的設定文件,將設定檔套用到代理。

5.3.3 代理參數和設定

代理參數可微調效能和行為。分發代理程式的關鍵參數包括 CommitBatchSize(每次提交應用的事務數)、CommitBatchThreshold(提交前的命令數)、SubscriptionStreams(用於加快傳輸速度的並行連接)和 QueryTimeout(命令逾時時間)。

對於日誌讀取代理,重要參數包括 ReadBatchSize(每次掃描讀取的交易數)、ReadBatchThreshold(交付前的命令數)和 PollingInterval(日誌掃描之間的延遲)。根據交易量和延遲要求調整這些參數。

配置代理屬性

5.4 備份和還原註意事項

備份參與複製的資料庫需要特別注意。對於發布伺服器資料庫,定期進行完整備份和交易日誌備份至關重要。在備份交易複製資料庫時,使用 WITH REPLICATION 選項將資料庫備份標記為支援複製。定期備份分發資料庫以保護複製配置。

將發布者資料庫還原到相同伺服器並使用相同名稱時,請使用 WITH KEEP_REPLICATION 選項來保留複製狀態。此選項可確保日誌讀取器代理程式尚未處理的交易仍標記為待複製,從而允許複製自動繼續進行,而無需重新初始化訂閱。

在災難復原場景中,如果備份不可用、備份損壞或資料庫檔案損壞,則可能需要專門的復原工具。 DataNumen SQL Recovery 可以從損壞或無法存取的 MDF 和 NDF 檔案中提取數據,在標準恢復程序失敗時提供最後的選擇。

有關更多詳細信息 SQL Server 備份,請參閱我們的 綜合指南.

6. 常見問題 (FAQ)

Q:快照複製和事務複製有什麼不同?

答:快照複製會在特定時間點取得資料的完整副本並將其套用到訂閱者,適用於不經常變更的資料。事務複製則從初始快照開始,然後持續複製發生的單一事務,從而為頻繁更改的資料提供近乎即時的同步。

Q:我可以在不同的 SQL Server 版本?

答:是的, SQL Server 複製功能支援有限範圍內的版本相容性。分發伺服器的版本必須等於或高於發布伺服器的版本,而訂閱伺服器的版本可以與發布伺服器的版本相差不超過兩個版本。例如,如果發布伺服器的版本是… SQL Server 2016年,訂閱者可以是 SQL Server 2012年、2014年、2016年、2017年或2019年。

Q:如何處理合併複製中的衝突?

答:合併複製提供了內建的衝突偵測和解決機制。您可以在條目層級配置衝突解決器,可以選擇內建解決器或實作自訂衝突解決器。衝突通常使用基於優先順序或基於時間戳記的方法來解決,並且可以選擇記錄衝突以供人工審核。

Q:複製操作會對效能產生哪些影響?

答:複製會從多個方面影響效能:發布伺服器會因追蹤變更和產生快照而產生額外開銷,分發伺服器會使用資源來儲存和轉送事務,資料傳輸期間還會消耗網路頻寬。影響程度因複製類型而異,快照複製會導致週期性的高影響突發,而事務複製則能維持更穩定但持續的負載。

Q:如何確保我的複製拓撲結構的安全?

答:透過實施以下幾項最佳實務來保護您的複製拓撲:使用 Windows 驗證或強式驗證。 SQL Server 進行身份驗證,使用 TLS 加密連接,並使用適當的方法保護快照資料夾。 NTFS 權限,配置發布訪問列表 (PAL) 以控制訪問,為每個複製代理使用具有最低所需權限的單獨服務帳戶,並定期審核複製安全設定。

Q:我可以複製到 Azure SQL 資料庫嗎?

答:是的,您可以使用交易複製將本機資料庫複製到 Azure SQL 資料庫。 SQL Server 或使用 Azure SQL 託管執行個體作為發布者和分發者。 Azure SQL 資料庫可以作為訂閱者,但不能作為發布者或分發者。 Azure SQL 資料庫不支援合併複製和對等複製。

Q:如何監控複製延遲?

A:使用複製監視器監控複製延遲 SQL Server 管理工作室會顯示每個訂閱的延遲指標。您也可以查詢分發資料庫表(例如 MSdistribution_history 和 MSrepl_commands),使用特定於複製代理程式的效能計數器,或根據延遲閾值設定警報,以主動偵測和解決同步延遲。

Q:當使用者離線時會發生什麼事?

答:當訂閱節點離線時,其行為取決於複製類型。對於交易複製,交易會累積在分發資料庫中,直到訂閱節點重新上線,然後恢復同步。對於合併複製,變更會在兩端同時追蹤,並在連線恢復後合併。保留期設定決定了資料在必須重新初始化之前保留多長時間。

Q:如何在現有出版品中新增文章?

答:若要為現有出版品新增新文章,請使用 SQL Server 您可以使用 Management Studio 修改發布屬性並選擇其他對象,或使用 sp_addarticle 預存程序。新增文章後,請產生新的快照並重新初始化所有訂閱,以確保訂閱者能夠收到新文章。根據發佈設定的不同,某些變更可能需要重新初始化訂閱。

Q:如何從資料庫移除複製功能?

答:要從資料庫移除複製,首先使用 sp_dropsubscription 刪除所有訂閱,然後使用 sp_droppublication 刪除發布,最後使用 sp_replicationdboption 停用資料庫上的發布功能。如果伺服器是分發伺服器,則使用 sp_dropdistributor 停用分發功能。移除複製配置之前,請務必備份資料庫。

問: SQL Server 複製和 AlwaysOn 可用性群組?

答:複製是一種在物件層級運行的資料分發和整合解決方案,而 始終在線可用性組 是一種在資料庫層級運作的高可用性和災難復原解決方案。

7. 結論

SQL Server 複製技術提供了一個強大的框架,用於跨多個資料庫和位置分發和同步資料。該技術透過不同的複製類型支援各種應用場景。

選擇合適的複製策略取決於您的特定需求。需要考慮資料變更頻率、延遲要求、使用者是否需要更新、網路特性以及使用者自主性需求。快照複製最適合不經常變更且延遲要求不高的參考資料。交易複製適用於需要低延遲且主要為單向資料流的高容量場景。

當訂閱者需要具備離線自主運作能力和雙向同步功能時,請選擇合併複製。對於需要在多個活動節點上進行負載平衡讀取操作並實現近乎即時一致性的情況,請實施點對點複製。對於具有多樣化需求的複雜場景,請考慮結合多種複製類型的混合方案。

參考


關於作者

元盛 是一位資深資料庫管理員 (DBA),擁有超過 10 年的 SQL Server 環境和企業資料庫管理。他成功解決了金融服務、醫療保健和製造業等行業的數百個資料庫恢復場景。

袁專長於 SQL Server 資料庫復原、高可用性解決方案和效能優化。他擁有豐富的實務經驗,包括管理多TB資料庫、實施Always On可用性群組以及為關鍵業務系統開發自動備份和復原策略。

透過他的技術專長和實踐方法,袁致力於創建全面的指南,幫助資料庫管理員和 IT 專業人員解決複雜的 SQL Server 高效應對挑戰。他始終掌握最新 SQL Server 版本和微軟不斷發展的資料庫技術,定期測試恢復場景以確保他的建議反映現實世界的最佳實踐。

有關於的問題 SQL Server 恢復或需要額外的資料庫故障排除指導?袁歡迎 回饋和建議 用於改進這些技術資源。

立即分享: