SQL Server 發佈訂閱 發佈類型詳解

来源:http://www.cnblogs.com/raincedar/archive/2016/06/13/5580122.html
-Advertisement-
Play Games

MicrosoftSQL Server 提供了三種複製類型。 每種複製類型都適合於不同應用程式的要求。 根據應用程式需要,可以在拓撲中使用一種或多種複製類型: 快照複製 事務複製 合併複製 為了幫助您選擇適當的複製類型,此主題提供了有關下列內容的信息: 複製方案 本部分簡要描述了複製的多種常用情況, ...


MicrosoftSQL Server 提供了三種複製類型。 每種複製類型都適合於不同應用程式的要求。 根據應用程式需要,可以在拓撲中使用一種或多種複製類型:

  • 快照複製

  • 事務複製

  • 合併複製

為了幫助您選擇適當的複製類型,此主題提供了有關下列內容的信息:

  • 複製方案

    本部分簡要描述了複製的多種常用情況,還提供了指向更加詳細描述的鏈接。

  • 複製類型

    本部分描述了每個複製類型所適合的應用程式要求。

  • 在訂閱伺服器上更新數據

    本部分描述了需要在訂閱伺服器上更新數據的應用程式的可用選項。

我們建議您先要通讀方案描述,找出與應用程式要求最匹配的方案,然後單擊鏈接查看詳細信息。 如果找不到與業務要求近似匹配的方案,或者希望得到有關複製類型的其他信息,則請閱讀“複製類型”。 如果應用程式需要在一個或多個訂閱伺服器上更新,則請閱讀“在訂閱伺服器中更新數據”,以確定可使用的適當技術。

複製方案    

複製方案可以分為兩大類: 在伺服器到伺服器環境中複製數據和在伺服器與客戶端間複製數據。 伺服器到伺服器方案使用事務複製(有時也可使用快照複製)實現;伺服器和客戶端方案使用合併複製實現。

伺服器到伺服器方案

數據通常在伺服器之間進行複製,以支持下列應用程式和要求:

 

方案

說明

提高伸縮性和可用性

通過維護不斷更新的數據副本,可以將讀取活動擴展到多台伺服器。 執行計劃系統維護和非計劃系統維護期間,應為同一數據維護多個副本以實現數據冗餘,這一點至關重要。 有關詳細信息,請參閱改善伸縮性和可用性

數據倉庫和報表

數據倉庫和報表伺服器通常使用聯機事務處理 (OLTP) 伺服器中的數據。 使用複製在 OLTP 伺服器和報表與決策支持系統之間移動數據。 有關詳細信息,請參閱數據倉庫和報告

集成來自多個站點的數據

數據通常從各個遠程辦事處“匯入”總部併在總部進行整合。 同樣,數據也可以從總部複製到遠程辦事處。 有關詳細信息,請參閱集成來自多個站點(伺服器)的數據

集成異類數據

有些應用程式要依賴於發送至或來自非 MicrosoftSQL Server 的資料庫的數據。 使用複製集成來自非 SQL Server 資料庫的數據。 有關詳細信息,請參閱集成異類數據

卸載批處理

批處理操作由於通常會占用過多資源而無法在 OLTP 伺服器上運行。 使用複製將批處理任務卸載到專用批處理伺服器上。 有關詳細信息,請參閱卸載批處理

伺服器和客戶端方案

數據通常在伺服器和客戶端(包括工作站、攜帶型電腦、Tablet 和設置)之間複製,以支持下列應用程式:

 

方案

說明

與移動用戶交換數據

許多應用程式要求數據可用於遠程用戶,包括銷售人員、送貨司機等。 這些應用程式包括客戶關係管理 (CRM) 應用程式、銷售自動化 (SFA) 應用程式和現場自動化 (FFA) 應用程式。 有關詳細信息,請參閱與移動用戶交換數據

消費者銷售點 (POS) 應用程式

POS 應用程式(如結算終端和 ATM 機)要求將數據從遠程站點複製到中心站點。 有關詳細信息,請參閱使用者銷售點 (POS) 應用程式

集成來自多個站點的數據

應用程式通常集成來自多個站點的數據。 例如,支持區域辦事處的應用程式可能要求數據在區域辦事處和總部之間單向或雙向流動。 有關詳細信息,請參閱集成來自多個站點(客戶端)的數據

複製類型    

快照複製

快照處理通常用於為事務和合併發佈提供初始的數據集和資料庫對象,但快照複製還可為其自身所用。 當符合以下一個或多個條件時,使用快照複製本身是最合適的:

  • 很少更改數據。

  • 在一段時間內允許具有相對發佈伺服器已過時的數據副本。

  • 複製少量數據。

  • 在短期內出現大量更改。

在數據更改量很大,但很少發生更改時,快照複製是最合適的。 例如,如果某銷售組織維護一個產品價格列表且這些價格每年要在固定時間進行一兩次完全更新,那麼建議在數據更改後複製完整的數據快照。

事務複製

事務複製通常用於伺服器到伺服器環境中,在以下各種情況下適合採用事務複製:

  • 希望發生增量更改時將其傳播到訂閱伺服器。

  • 從發佈伺服器上發生更改,至更改到達訂閱伺服器,應用程式需要這兩者之間的滯後時間較短。

  • 應用程式需要訪問中間數據狀態。 例如,如果某一行更改了五次,事務複製將允許應用程式響應每次更改(例如,激發觸發器),而不只是響應該行最終的數據更改。

  • 發佈伺服器有大量的插入、更新和刪除活動。

  • 發佈伺服器或訂閱伺服器不是 SQL Server 資料庫(例如,Oracle)。

預設情況下,事務發佈訂閱伺服器應作只讀處理,因為更改並不傳播回發佈伺服器。 但是,事務複製確實提供了允許在訂閱伺服器上進行更新的選項。 有關詳細信息,請參閱本主題中的“在訂閱伺服器中更新數據”部分。

合併複製

合併複製通常用於伺服器到客戶端的環境中。 合併複製適用於下列各種情況:

  • 多個訂閱伺服器可能會在不同時間更新同一數據,並將這些更改傳播到發佈伺服器和其他訂閱伺服器。

  • 訂閱伺服器需要接收數據,離線進行更改,併在隨後與發佈伺服器和其他訂閱伺服器同步更改。

  • 每個訂閱伺服器都需要不同分區的數據。

  • 可能會發生衝突,並且在衝突發生時,您需要具有檢測和解決衝突的能力。

  • 應用程式需要最終的數據更改結果,而不是訪問中間數據狀態。 例如,在訂閱伺服器與發佈伺服器同步前,如果訂閱伺服器上的行更改了五次,則該行將只在發佈伺服器上更改一次,以反映最終數據更改(也就是更改為第五個值)。

合併複製允許不同站點自主工作,併在以後將更新合併成一個統一的結果。 由於更新是在多個節點上進行的,同一數據可能由發佈伺服器和多個訂閱伺服器進行了更新。 因此,在合併更新時可能會產生衝突,合併複製提供了多種處理衝突的方法。

在訂閱伺服器上更新數據    

下列類型的複製和複製選項允許在訂閱伺服器上進行更改,並使這些更改流向發佈伺服器:

 

複製類型

何時使用...

合併複製

  • 存在大量訂閱伺服器。

  • 數據被覆制到移動用戶。

  • 在訂閱伺服器上頻繁更新已複製的數據。

  • 需要數據篩選,以便訂閱伺服器可以接收不同分區的數據。

有關詳細信息,請參閱合併複製概述合併複製的工作機制

對等事務複製

  • 複製被用於改進伸縮性和可用性。

  • 需要最短滯後時間。

  • 數據未在訂閱伺服器間分區。

  • 通常不會發生衝突,但如果有,則一定會檢測得到。

有關詳細信息,請參閱對等事務複製

帶有更新訂閱的事務複製

  • 存在少量訂閱伺服器。

  • 已複製的數據在訂閱伺服器上通常為只讀。

  • 大多數情況下,訂閱伺服器、分發伺服器和發佈伺服器都是相互連接的(適用於立即更新訂閱)。

有關詳細信息,請參閱事務複製的可更新訂閱


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、佈局文件 2、代碼部分 3、效果展示 ...
  • 1、Activity的 runOnUiThread android Activity runOnUiThread() 方法使用 2、Handler sendEmptyMessage() 3、Handler post() 4、view Post() 總結: 1、其實上面的四種方式都可歸結於一種方式:h ...
  • 1、子線程和子線程之間的通信 註意: 1、調用Looper類的 prepare() 方法可以為當前線程創建一個消息迴圈,調用loop() 方法使之處理信息,直到迴圈結束。 2、Handler有幾個構造重載,如果構造時不提供Looper類對象參數,會獲取當前線程的Looper對象,即將當前線程的消息循 ...
  • 1,當心ISNULL函數對你的邏輯引起BUG 有人喜歡或者習慣於(並不代表我推薦,甚至這種寫法沒有任何好處)用ISNULL處理變數這種方式寫查詢 比如:select * from TestISNULL where name = ISNULL(@name,name) @name相當於傳入到存儲過程中的 ...
  • 在SQL SERVER中列許可權(Column Permissions)其實真沒有什麼好說的,但是好多人對這個都不甚瞭解,已經被人問了幾次了,所以還是在這裡介紹一下,很多人都會問,我能否單獨對錶的某列授權給某個用戶? 答案是可以,我們可以對錶中的列授予SELECT、UPDATE許可權,我們結合下麵的簡單... ...
  • 通常在我寫EXISTS語句時,我會寫成IF EXISTS(SELECT TOP(1) 1 FROM XXX),也沒細細考究過為什麼要這麼寫,只是隱約認為這樣寫沒有啥問題,那今天就深究下吧! 首先準備測試測試數據 其中需要註意下索引IDX_ID, 雖然ID已經是主鍵索引,但仍創建一個非聚集索引以供後續 ...
  • 由於從各光伏電站採集的數據量較大,必須解決海量數據的查詢、分析的問題。目前主要考慮兩種方式:1. Hadoop大數據技術;2. Oracle(數據倉庫)+BI; 本文僅介紹hadoop的技術要應用特征。 Hadoop 基本介紹 hadoop是一個平臺,是一個適合大數據的分散式存儲和計算的平臺。什麼是 ...
  • 控制文件是Oracle資料庫中一種非常重要的文件。 在Oracle資料庫中主要包括:數據文件、控制文件和重做日誌文件。在數據文件中存儲資料庫中的數據,包括各種資料庫對象及其數據。在重做日誌文件中存放用戶執行DML及DDL命令的記錄。 在控制文件中存放資料庫的結構信息。具體來說,在控制文件中包含以下重 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...