SQL Server 復(fù)制(Replication)

復(fù)制是將一組數(shù)據(jù)從一個數(shù)據(jù)源拷貝到多個數(shù)據(jù)源的技術(shù),是將一份數(shù)據(jù)發(fā)布到多個存儲站點上的有效方式。使用復(fù)制技術(shù),我們可以將一份數(shù)據(jù)發(fā)布到多臺服務(wù)器上,從而使不同的服務(wù)器用戶都可以在權(quán)限許可的范圍內(nèi)共享這份數(shù)據(jù)。
SQL Server復(fù)制技術(shù)可以確保分布在不同地點的數(shù)據(jù)自動同步更新,從而保證數(shù)據(jù)的一致性,為實現(xiàn)數(shù)據(jù)庫讀寫分離,高可用等都提供了不錯的解決方案。SQL Server 主要采用出版物、訂閱的方式來處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負責(zé)發(fā)表數(shù)據(jù)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器,分發(fā)服務(wù)器包含有一個分發(fā)數(shù)據(jù)庫,可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器。

SQL Server 復(fù)制

SQL Server允許在不同的數(shù)據(jù)庫如 Oracle或Access之間進行數(shù)據(jù)復(fù)制。
SQL Server復(fù)制操作的前提條件是SQL Server代理服務(wù)必須已經(jīng)啟動。
一個分發(fā)服務(wù)器支持多個發(fā)布服務(wù)器,就像一個報刊亭可以同時出售多個出版社發(fā)行的雜志一樣。同理,分發(fā)服務(wù)器也可以和發(fā)布服務(wù)器是同一個實例,這就像直銷一樣。

配置復(fù)制就沒有數(shù)據(jù)庫鏡像和Always On的要求那么高,只需要兩臺服務(wù)器能通過TCP進行通訊即可,兩臺服務(wù)器的操作系統(tǒng)和SQL Server版本都可以不完全一致,而且兩臺服務(wù)器也不需要加入域。但是復(fù)制訂閱主要是針對數(shù)據(jù)表而不能像鏡像和Always On那樣配置整個數(shù)據(jù)庫。


事務(wù)復(fù)制
在第一次設(shè)置好事務(wù)復(fù)制后,發(fā)布的表、存儲過程等將會被鏡像,之后每次對于發(fā)布服務(wù)器所做的改動都會以日志的方式傳送到訂閱服務(wù)器,使得發(fā)布服務(wù)器和訂閱服務(wù)器幾乎可以保持同步。因此,可以看出事務(wù)復(fù)制的特點是:

1.發(fā)布服務(wù)器和訂閱服務(wù)器內(nèi)容基本可以同步
2.訂閱服務(wù)器也支持請求訂閱,可以不用一直和分發(fā)服務(wù)器保持連接,定期查看其是否有可用更新即可。
3.適用于要求實時性的環(huán)境。

特點

相比較其它高可用性技術(shù)而言,復(fù)制有如下好處:

復(fù)制是對象級別
復(fù)制可以工作在簡單恢復(fù)模式下
可以擁有無限多個訂閱,并考慮請求訂閱,將Distribution Agent的負載Offload到訂閱服務(wù)器
復(fù)制允許在訂閱端進行更新,沒有其它高可用性技術(shù)可以做到這一點
在故障轉(zhuǎn)移的時候,不需要Redo或Rollback日志,只需要將應(yīng)用重定向到訂閱節(jié)點

但同樣,復(fù)制也有其自身局限性,比如:

復(fù)制建立、調(diào)錯都相對比較復(fù)雜
復(fù)制是對象級別(沒錯,基于不同的場景)
分發(fā)庫上不能建立鏡像,因此分發(fā)庫有可能成為Single-Point-Of-Failure
復(fù)制很容易影響發(fā)布服務(wù)器的性能
不能進行熱備,這意味著就不能進行故障檢測和故障排除
對于復(fù)制來說,故障轉(zhuǎn)移容易,想轉(zhuǎn)移回來就比較麻煩,因此這種情況下可以考慮P2P復(fù)制

但不得不說,復(fù)制的確是非常的強大,“想復(fù)制什么復(fù)制什么,想復(fù)制多遠復(fù)制多遠,想怎么復(fù)制就怎么復(fù)制,想復(fù)制的多復(fù)雜就多復(fù)雜”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL是...
    西貝巴巴閱讀 1,990評論 0 10
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,327評論 0 7
  • 叩響了午夜的夢 在每條溝壑中 洗刷夜里的黑 黎明,在薄霧中醒來 干凈 清新
    雷慕閱讀 178評論 0 0
  • 言論自由不應(yīng)該成為謾罵發(fā)泄的借口,別人怎樣是別人的事,你有判斷是非的能力,也有發(fā)表觀點的權(quán)利,但請不要為了別人家的...
    二姐的書房閱讀 595評論 0 0

友情鏈接更多精彩內(nèi)容