SQL Server之資料庫複製

2021-06-19 05:47:41 字數 1940 閱讀 8319

sql server中備份,除了映象方式外還有複製方式。(sqlserver 2012中還引進了alwayson,並且官方建議不再使用映象)

資料庫複製-----概述

複製是一組技術,它將資料和資料庫物件從乙個資料庫複製和分發到另乙個資料庫,然後在資料庫之間進行同步以保持一致性。 使用複製,可以在區域網和廣域網、撥號連線、無線連線和 internet 上將資料分發到不同位置以及分發給遠端或移動使用者。

事務複製通常用於需要高吞吐量的伺服器到伺服器方案(包括:提高伸縮性和可用性、資料倉儲和報告、整合多個站點的資料、整合異類資料以及減輕批處理的負荷)。       合併複製主要是為可能存在資料衝突的移動應用程式或分步式伺服器應用程式設計的。 常見應用場景包括:與移動使用者交換資料、pos(消費者銷售點)應用程式以及整合來自多個站點的資料。

快照複製用於為事務複製和合併複製提供初始資料集;在適合資料完全重新整理時也可以使用快照複製。 

資料庫複製-----複製型別

事務複製通常從發布資料庫物件和資料的快照開始。 建立了初始快照後,接著在發布伺服器上所做的資料更改和架構修改通常在修改發生時(幾乎實時)便傳遞給訂閱伺服器。 資料更改將按照其在發布伺服器上發生的順序和事務邊界應用於訂閱伺服器,因此,在發布內部可以保證事務的一致性。

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

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

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

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

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

發布伺服器或訂閱伺服器不是 sql server 資料庫(例如,oracle)。

合併複製通常也是從發布資料庫物件和資料的快照開始, 

並且用觸發器跟蹤在發布伺服器和訂閱伺服器上所做的後續資料更改和架構修改。

訂閱伺服器在連線到網路時將與發布伺服器進行同步,並交換自上次同步以來發布伺服器和訂閱伺服器之間發生更改的所有行。

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

多個訂閱伺服器可能會在不同時間更新同一資料,並將其更改傳播到發布伺服器和其他訂閱伺服器。

訂閱伺服器需要接收資料,離線更改資料,並在以後與發布伺服器和其他訂閱伺服器同步更改。

每個訂閱伺服器都需要不同的資料分割槽。

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

應用程式需要最終的資料更改結果,而不是訪問中間資料狀態。 例如,如果在訂閱伺服器與發布伺服器進行同步之前,訂閱伺服器上的行更改了五次,則該行在發布伺服器上僅更改一次來反映最終資料更改(也就是第五次更改的值)。

快照複製完全按照資料在特定時刻的狀態分發資料,而不監視資料是否更新。 發生同步時,將生成完整的快照並將其傳送到訂閱伺服器。

當符合以下乙個或多個條件時,使用快照複製本身是最合適的:

很少更改資料。

在一段時間內允許具有相對發布伺服器已過時的資料副本。

複製少量資料。

在短期內出現大量更改。

在資料更改量很大,但很少發生更改時,快照複製是最合適的。 例如,如果某銷售組織維護乙個產品**列表且這些**每年要在固定時間進行一兩次完全更新,那麼建議在資料更改後複製完整的資料快照。 對於給定的某些型別的資料,更頻繁的快照可能也比較適合。 例如,如果一天中在發布伺服器上更新相對小的表,但可以接受一定的滯後時間,則可以在夜間以快照形式傳遞更改。

發布伺服器上快照複製的連續開銷低於事務複製的開銷,因為不用跟蹤增量更改。 但是,如果要複製的資料集非常大,那麼若要生成和應用快照,將需要使用大量資源。 評估是否使用快照複製時,需要考慮整個資料集的大小以及資料的更改頻率。

詳細內容請查閱:

複製SqlServer資料庫

在目前的工作中需要解決複製整個sqlserver資料庫的問題,複製的內容包括資料庫大綱 資料庫中的儲存過程 函式 表結構 主外來鍵關係以及表中的所有資料等,也就是說copy版本與原資料庫一模一樣。經過一段時間的摸索,找到的乙個比較簡單的解決方案是 1 在複製資料庫之前,先備份該資料庫到檔案。2 依據...

複製SqlServer資料庫

在目前的工作中需要解決複製整個sqlserver資料庫的問題,複製的內容包括資料庫大綱 資料庫中的儲存過程 函式 表結構 主外來鍵關係以及表中的所有資料等,也就是說copy版本與原資料庫一模一樣。經過一段時間的摸索,找到的乙個比較簡單的解決方案是 1 在複製資料庫之前,先備份該資料庫到檔案。2 依據...

SQL Server 複製資料庫任務

假設你要生產環境下的資料做相應的測試,比如修改及測試儲存過程 更改和優化索引等。但是你使用者在連線資料庫的情況下,你又不能斷開資料庫的連線。如何取得資料庫的副本呢?一.利用資料庫任務中的複製資料庫選單 示例是從預設例項 mssqlserver 向命名例項 mysqlserver 複製northwin...