sql server主從同步

sql server主從方案介紹

 

  sql server 做爲目前主流的數據庫,用戶遍及世界各地。sql server也有一些比較成熟的主備方案,目前主要有:複製模式(發佈-訂閱模式)、鏡像傳輸模式、日誌傳輸模式、故障轉移集羣。後面會一一介紹介紹各自的優缺點。html

(一)複製模式sql

  複製模式也被稱爲發佈-訂閱模式,是由主服務器進行發佈消息,備份服務器進行訂閱,當主服務器數據發生變動時,就會發布消息,備份服務器讀取消息進行同步更新,中間過程延遲比較短。數據庫

  複製方式是之前很常見的一種主備,速度快,延遲小,能夠支持部分同步等優勢,可是也有一個很明顯的缺點,由於是部分同步,若是是表修改,能夠主動同步,可是若是是新增表、視圖等操做,必須在發佈屬性中,將新加的表或者視圖添加到同步配置中,不然對這個表作的任何操做都不會同步。安全

  複製模式同步,要求數據庫名稱和主機名稱必須一致,不然查找不到數據庫主機;要求數據庫不能使用端口,必須是能夠經過ip直接訪問的;服務器

  主要分爲如下4種發佈方式:架構

  1.快照發布併發

    快照發布,就是將全部要發佈的內容,作成一個鏡像文件,而後一次性複製到訂閱服務器,兩次快照之間的更新不會實時同步。這種方式佔用帶寬較多,所以比較適用內容不是很大,或者更新不須要很頻繁的場景函數

  2.事務發佈/具備可更新訂閱的事務發佈post

    事務發佈,是在第一次設置好事務複製以後,全部發布的內容都會進行鏡像快照,訂閱服務器收到已發佈數據的初始快照後,發佈服務器將事務流式傳輸到訂閱服務器。當主服務器數據發生變動時,會經過日誌傳遞同步給訂閱服務器,數據近似於同步更新。性能

    此方式會對主服務器性能形成很大影響(實時同步每次變動,而不是最終變動),適用於對數據及時性要求比較嚴格主備方案,可是目前已被微軟提供的集羣Always On所取代。

 

  3.合併發佈

    合併發佈是至關於兩臺都是主服務器,均可以對數據進行更新修改等操做,而後定時將發佈服務器上的內容與訂閱服務器上的內容進行合併,並根據配置保留相應內容,此種不多用。

(二)鏡像傳輸模式

  數據庫鏡像傳輸,嚴格來講不是主從架構,而是主備架構,將兩臺數據庫服務器經過一臺中間監控服務器關聯起來,兩臺服務器經過鏡像文件,實時同步數據(有延遲,延遲很短)。當主服務器宕機以後,監控服務器自動切換到備份服務器上。

  此方案優勢是能夠快速的切換主備方案,相比較Always on集羣,能夠不用共享磁盤便可實現,避免了數據庫集羣存儲單點故障,致使整個集羣崩潰。

  缺點也很明顯,不管是主備服務器,要實現同步操做,都是依賴於性能低的那一端,所以兩臺服務器都要是高性能的才能夠保證同步的及時性;同時備份服務器只是備份和故障轉移,不能提供從服務器的只讀訪問,所以才說是主備服務器,並且是一對一,只能有一臺備份服務器。

(三)日誌傳輸模式

  與鏡像傳輸模式相似,是將主數據庫日誌備份,發送到從服務器上,而後從服務器還原日誌,更新數據。

  此方式優勢在於從服務器能夠有多臺從服務器,並且當主服務器腳本操做異常後,只須要在日誌同步以前,及時攔截日誌傳輸,便可保留從服務器數據,減小災難損失;此方式相較於「複製發佈」模式,還有一個有點就是不管是新增表、視圖等等,都會經過日誌同步給從服務器,而複製模式不行

  而相應的缺點就是經過日誌備份傳輸,在還原,會有較大的時間延遲。並且沒法自動轉移故障,只能手動轉移。

 

(四)故障轉移集羣

  集羣技術是微軟提供的,可用性最高的主備方案。它是將多臺服務器經過一個共享的外部存儲區域(SAN),鏈接成一個資源共享的服務器羣體,數據庫文件和實例,都存放並運行在該共享區域節點上,每臺服務器至關於一個節點,共同訪問共享的節點實例。服務器只有一個節點處於活動狀態,當活動節點出現故障,會有其餘節點主動啓動,取代當前故障點,整個過程只須要幾秒鐘,用戶沒法感知。

  集羣有不少優勢,是目前最高效的高可用技術,可是他也有很明顯的缺點,全部的節點,都依賴於共享節點實例,若是共享節點出現故障,將會致使整個集羣失去做用,且很難恢復。

-------------------------------SqlServer 數據庫同步的兩種方式 (發佈、訂閱),主從數據庫之間的同步(轉)------------

主數據庫通常是把數據發佈出去,而後在鏈接從數據庫對發佈的數據進行訂閱,同步到從數據庫中。

一、發佈。發佈須要用實際的服務器名稱,不能使用服務器的IP地址進行。能發佈的信息包括【表】、【存儲過程】、【用戶函數】若是使用IP會有錯誤,以下圖:

   具體發佈過程以下:

  一、找到數據庫服務器下的【複製】--【本地發佈】,選擇【新建發佈】。以下圖:

 

  2.選擇待發布的數據庫。以下圖:

 

 三、選擇發佈類型。這裏選擇的默認類型【快照發布】。幾種發佈類型的區別,SQL SERVER都在下面給出了說明。以下圖:

  四、選擇待發布的類容。以下圖:

上圖中右側就是篩選的SQL語句。

  五、設置快照代理。以下圖:

 更改同步頻率以下圖:

六、設置代理安全性。以下圖:

七、填寫發佈名稱

八、完成發佈。以下圖:

二、訂閱。訂閱是對數據庫發佈的快照進行同步,將發佈的數據源數據同步到目標數據庫。具體訂閱過程以下;

一、找到數據庫服務器下的【複製】--【本地訂閱】,選擇【新建訂閱】。以下圖:

二、選擇訂閱的發佈。以下圖:

三、選擇分發代理的位置;以下圖:

四、選擇訂閱服務器上的存放同步過來的數據的一個或者多個目標數據庫。以下圖:

若要添加多個訂閱數據庫,則點擊【添加訂閱服務器】。以下圖:

五、設置分發代理的安全性。以下圖:

六、設置同步計劃。以下圖:

七、完成訂閱。以下圖:

這樣就完成了發佈與訂閱的整個流程。

相關文章
相關標籤/搜索