SQLServer Replication 建立技巧

來源:互聯網
上載者:User

    SQLServer的Replication技術從2005開始,已經變得非常成熟了,而且效果也很好,很多的公司在做讀寫分離時,都選擇了這項技術;Replication現在包括事務、
合并和快照三種,每項都有各自的應用優勢,大家用得最多的無疑是事物複製了,這種技術能保證我們發布端的資料的變更能及時傳輸到訂閱端,網路頻寬和伺服器配置
如果不差的話,兩台機器之間的資料延時是非常小的,這為我們的讀寫分離技術提供了有力的保障(很少出現使用者剛剛新加的資料查不到的現象),不僅分散了讀寫的壓
力,而且在做機器維護時也遊刃有餘,並且使用者體驗也得到了比較好的提升,下面我們以事務複製為例,來介紹下建立複製鏈的技巧。

建立Replication有三種方法:

方法一:使用備份還原的技術
    這個方法對資料量比較大,而且停機時間要求非常緊的資料庫複寫是很好的選擇,實現方式很簡單,就是在停站的情況下,把我們的發布端的Database Backup,
    然後還原到訂閱端,這樣發布端和訂閱端的資料是一致的;然後我們再將同步鏈建上即可。
    不過,這個方法有個要求是,我們把資料還原到訂閱端後,需要檢查所有的表是否有自增列,如果有自增列,我們需要將自增列改為普通列,方式如下:

    1. 在訂閱端還原的資料庫上尋找自增列:

    

    --尋找資料庫自增列
SELECT
表名= D.NAME,
列名= A.NAME,
是否自增= CASE WHEN COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1 THEN '√'ELSE '' END,
主鍵= CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN (
SELECT NAME FROM SYSINDEXES WHERE INDID IN(
SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√' ELSE '' END
FROM SYSCOLUMNS A
LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND D.XTYPE= 'U' AND D.NAME <> 'DTPROPERTIES '
where COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1

      結果如下:
      

     2. 將自增列修改成普通列:
      方法是先重名了這些表,然後建立同名的表,表結構一樣,但是去掉自增列屬性,然後將重新命名的表資料匯入到新表中,完成後我們就得到了沒有自增列
      的表,然後就可以建立同步鏈了。

方法二:BCP和TableDiff
     BCP結合TableDiff在我們為已有的同步鏈添加新表,而且要求發布端必須保持線上,並對發布端業務影響最小時是非常好的方法,它的實現步驟如下:
     1. 將需要新加到同步鏈的表結構建立到訂閱端;
     2. 在發布端準備好BCP匯出匯入指令碼,並將要新加的表通過BCP匯出到檔案中;
     3. 將新表加入到同步鏈中(可以通過指令碼,也可以直接通過可視化介面操作),暫停這條鏈上同步資料的JOB;
     4. 運行BCP匯入指令碼,將資料匯入到訂閱端;
     5. 用TableDiff比較新表在訂閱端和發布端的資料,並補齊差異資料(TableDiff 比較後會自動產生不起差異資料的指令碼,在訂閱端運行即可);
     6. 開啟暫停同步鏈的JOB,這樣就完成了。

     整個過程對系統業務影響非常小。

方法三:直接初始化快照
     這種方式是最簡單的,但是對業務影響非常大,而且耗時也很長,基本不推薦(不過這個方法很多人在用,如果是很小的庫還是可以考慮)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.