事務複製工作機制

2021-07-22 19:00:45 字數 1686 閱讀 7079

事務複製由 sql server 快照**、日誌讀取器**和分發**實現。 快照**準備快照檔案(其中包含了已發布表和資料庫物件的架構和資料),然後將這些檔案儲存在快照資料夾中,並在分發伺服器中的分發資料庫中記錄同步作業。

日誌讀取器**監視為事務複製配置的每個資料庫的事務日誌,並將標記為要複製的事務從事務日誌複製到分發資料庫中,分發資料庫的作用相當於乙個可靠的儲存-**佇列。 分發**將快照資料夾中的初始快照檔案和分發資料庫表中的事務複製到訂閱伺服器中。

在發布伺服器中所做的增量更改根據分發**的計畫流向訂閱伺服器,分發**可以連續執行以儘量減少滯後時間,也可以按預定的時間間隔執行。 由於資料更改必須在發布伺服器中進行(使用事務複製時,無需指定立即更新或排隊更新選項),從而避免了更新衝突。 最後,所有訂閱伺服器都將獲得與發布伺服器相同的值。 如果事務複製使用了立即更新或排隊更新選項,更新可以在訂閱伺服器中進行,對於排隊更新,可能會發生衝突。 有關詳細資訊,請參閱可更新訂閱的工作機制。

下圖顯示了事務複製的主要元件。

新的事務複製訂閱伺服器中必須包含一些表,這些表需要與發布伺服器中的表具有相同的架構和資料,這樣才能從發布伺服器中接收增量更改。 初始資料集通常是由快照**建立並由分發**分發和應用的快照。 初始資料集還可以通過備份或其他方式提供,如使用 sql server 整合服務提供。 有關詳細資訊,請參閱初始化訂閱。

在向訂閱伺服器分發並應用快照時,只有那些等待初始快照的訂閱伺服器才會受到影響。 該發布的其他訂閱伺服器(已經初始化的訂閱伺服器)不會受到影響。

在快照生成期間,快照複製會在作為複製的一部分發布的所有表上放置共享鎖。 這樣可以防止更新正在發布的表。 併發快照處理(事務複製的預設方式)在整個快照生成過程中並不保留共享鎖,因而允許使用者在複製建立初始快照檔案時繼續工作,而不會被打斷。

快照**在事務複製中實現初始快照所使用的過程與快照複製所使用的過程相同(上述有關併發快照處理的情況除外)。 有關詳細資訊,請參閱快照複製的工作機制。

生成快照檔案後,可以使用 microsoft windows 資源管理器在快照資料夾中檢視這些快照檔案。

日誌讀取器**在分發伺服器中執行;它通常連續執行,但也可以按照您制定的計畫執行。 執行日誌讀取器**時,它首先讀取發布事務日誌(該日誌與執行一般 sql server 資料庫引擎操作期間用於事務跟蹤和恢復的資料庫日誌相同),並標識任何 insert、update 以及 delete 語句,或者對已標記為要複製的事務進行的其他資料修改。 然後,該**將這些事務批量複製到分發伺服器中的分發資料庫中。 日誌讀取器**使用內部儲存過程sp_replcmds從日誌中獲取標記為要複製的下乙個命令集。 這樣,分發資料庫就成為乙個儲存-**佇列,從該佇列中將更改傳送到訂閱伺服器中。 只有已提交的事務才能傳送到分發資料庫中。

當整批事務都成功寫入分發資料庫之後,將提交這批事務。 在每一批命令都提交到分發伺服器後,日誌讀取器**將呼叫sp_repldone以標記最終完成複製的位置。 最後,**在事務日誌中標記可以清除的行。 仍在等待複製的行不會被清除。

事務命令在傳播到所有訂閱伺服器或達到最大分發保持期之前,一直儲存在分發資料庫中。 訂閱伺服器按事務在發布伺服器中應用的相同順序接收事務。

對於推送訂閱,分發**在分發伺服器上執行;對於請求訂閱,分發**在訂閱伺服器上執行。 該**將事務從分發資料庫移動到訂閱伺服器中。 如果訂閱被標記為需要驗證,則分發**還要檢查發布伺服器和訂閱伺服器中的資料是否匹配。 有關詳細資訊,請參閱驗證已複製的資料。

快照複製的工作機制

預設情況下,所有三種複製都使用快照初始化訂閱伺服器。sql server 快照 始終生成快照檔案,但傳遞檔案的 因使用的複製型別而異。快照複製和事務複製使用分發 傳遞檔案,而合併複製使用 sql server 合併 快照 在分發伺服器上執行。對於推送訂閱,分發 和合併 在分發伺服器上執行 對於請求訂...

mysql事務機制 Mysql事務機制

mysql事務是指將資料庫從一種一致性狀態轉到另一種一致性狀態 mysql事務具有acid特性 原子性 atomicity 事務中的所有操作,要麼全部執行,要麼都不執行 一致性 consistency 事務開始和結束後,資料庫的完整性不會被破壞 隔離性 isolation 事務之間互不影響。事務的隔...

hibernate 事務機制

資料庫事務的定義 事務是指一組相互信賴的操作行為。這些操作要麼必須全部成功,要麼必須全部失敗,以保證資料的一致性和完整性。資料庫事務是對現實生活中事務的模擬,它由一組在業務邏輯上相互信賴的sql語句組成。資料庫事務的acid屬性 原子性 atomic 指整個資料庫事務是不可分割的工作單元。原子性確保...