簡體   English   中英

哪個數據庫對復制具有最佳支持

[英]Which database has the best support for replication

我對MySQL復制可以做的事情有一個相當不錯的感覺。 我想知道其他數據庫支持復制,以及它們與MySQL和其他數據庫的比較?

我會遇到的一些問題是:

  1. 是內置復制,還是附加/插件?
  2. 復制如何工作(高級)? MySQL提供基於語句的復制(以及5.1中基於行的復制)。 我對其他數據庫的比較感興趣。 什么通過電線發貨? 如何將更改應用於副本?
  3. 檢查主站和從站之間的一致性是否容易?
  4. 將失敗的副本與主服務器同步恢復是多么容易?
  5. 性能? 我討厭MySQL復制的一件事是它是單線程的,並且副本經常無法跟上,因為master可以並行運行許多更新,但副本必須以串行方式運行它們。 在其他數據庫中有沒有這樣的問題?
  6. 任何其他有趣的功能......

MySQL的復制很弱,因為需要犧牲其他功能來獲得完全的主/主支持(由於受支持的后端的限制)。

PostgreSQL的復制很弱,因為只有內置支持主/備用(使用日志傳送); 更強大的解決方案(如Slony或Londiste)需要附加功能。 存檔日志段通過線路傳送,這些記錄與用於確保獨立數據庫在不干凈啟動時處於工作,一致狀態的記錄相同。 這就是我目前正在使用的,我們完全自動化了重新同步(和設置,以及其他功能)。 這些方法都不是完全同步的。 從PostgreSQL 8.5開始,將構建更完整的支持。 日志傳送不允許數據庫不同步,因此不需要進程來測試同步狀態; 使兩個數據庫重新同步包括在主服務器上設置備份標志,rsyncing到從服務器(數據庫仍然運行;這是安全的),並使用在生成期間生成的存檔日志取消設置備份標志(並重新啟動從屬進程)備份過程可用; 我的商店有自動化這個過程(像所有其他管理任務一樣)。 性能是一個非問題,因為除了做其他工作之外,主人必須在內部重播日志段。 因此,奴隸的負荷總是低於船長。

expensive. Oracle的RAC(沒有正確復制,因為只有一個存儲后端 - 但是你有多個前端共享負載,並且可以在共享存儲后端本身構建冗余,所以這里值得一提)是一個多主機方法遠比其他解決方案更全面,但是昂貴。 數據庫內容不是“通過網絡發送”; 相反,它們被存儲到共享后端,所涉及的所有系統都可以訪問該后端。 因為只有一個后端,系統不能不同步。

Continuent提供第三方解決方案,可完全同步語句級復制,並支持上述所有三個數據庫; 然而,他們產品的商業支持版本並不是特別便宜(雖然價格便宜得多。上次我管理它時,Continuent的解決方案需要手動干預才能使群集恢復同步。

我對MS-SQL 2005(發布者)和SQLEXPRESS(訂閱者)有一些海外合並復制的經驗。 以下是我的評論:

1 - 內置復制,還是附加/插件?

內置

2 - 復制如何工作(高級)?

從快照(在訂戶級別提供靜態數據)到事務復制(每個INSERT / DELETE / UPDATE指令在所有服務器上執行)的不同復制方式。 合並復制僅復制最終更改(復制期間將立即在同一記錄上成功更新)。

3 - 檢查主站和從站之間的一致性是否容易?

我從未做過的事......

4 - 將失敗的副本與主服務器同步恢復是多么容易?

基本的重新同步過程只需雙擊即可....但如果你有4Go數據重新初始化64 Kb連接,除非你自定義它,否則它將是一個漫長的過程。

5 - 表現?

那么......你當然會遇到瓶頸,包括你的連接性能,數據量,或者最后你的服務器性能。 在我的配置中,用戶只寫入訂閱者,這些訂閱者都使用main database = publisher進行復制。 然后,該服務器永遠不會被最終用戶所吸引,並且其CPU嚴格專用於數據復制(到多個服務器)和備份。 訂閱者專注於客戶端和一個復制(發布者),這為最終用戶的數據可用性提供了非常有趣的結果。 發布者和訂閱者之間的復制可以一起啟動。

6 - 任何其他有趣的功能......

有一些預期,可以繼續開發數據庫,​​甚至不用停止復制過程....表(以間接方式),字段和規則可以添加並復制到您的訂閱者。

主發布者和​​多個嫌疑人的配置非常便宜(與其他人相比......),因為即使在運行合並或事務復制時,您也可以在suscriber一側使用免費的SQLEXPRESS

嘗試使用Sybase SQL Anywhere

只需添加SQL Server的選項(特別是SQL 2008,它現在具有更改跟蹤功能)。 需要考慮的是Microsoft的Sync Framework 有一些選項,從基本的中心輻射式架構,如果你有一個中央服務器和有時連接的客戶端,直到對等同步,這使你能夠做得更高級與多個“主”數據庫同步。

您可能需要考慮此而不是傳統復制的原因是您可以從代碼中獲得更多控制權,例如,您可以在更新/更新,更新/刪除,刪除/更新,插入/插入沖突的同步過程中獲取事件並根據業務邏輯決定如何解決它們,如果需要,可以將沖突數據的輸出存儲在某處以進行手動或自動處理。 請查看本指南,以幫助您確定使用不同復制和/或同步方法的可能性。

對於敏銳的程序員來說,Sync Framework足夠開放,您可以讓客戶端通過WCF連接到您的WCF服務,后者可以抽象任何后端數據存儲(我聽說有些人正在嘗試使用Oracle作為后端)。

我的團隊剛剛發布了一個大項目,涉及多個SQL Express數據庫,通過WAN和Internet(在某些情況下,慢速撥號連接)同步來自中央SQL Server數據庫的數據子集,取得了巨大成功。

MS SQL 2005 Standard Edition及更高版本具有出色的復制功能和工具。 看一眼:

http://msdn.microsoft.com/en-us/library/ms151198(SQL.90).aspx

它很有能力。 您甚至可以將SQL Server Express用作只讀訂閱者。

數據庫CALL復制有很多不同的東西。 並非所有這些實際上都涉及復制,以及那些以完全不同的方式工作的復制。 一些數據庫支持幾種不同類型。

MySQL支持異步復制,這對某些事情非常有用。 但是,存在缺陷。 基於語句的復制與大多數(任何?)其他數據庫的復制不同,並不總是導致預期的行為。 基於行的復制僅由非生產就緒版本支持(但與其他數據庫的執行方式更為一致)。

每個數據庫都有自己的復制,有些涉及其他工具插入。

有點偏離主題,但您可能想查看Maatkit以獲取有助於MySQL復制的工具。

所有主要的商業數據庫都有不錯的復制 - 但有些比其他更好。 IBM Informix Dynamic Server(版本11及更高版本)特別好。 它實際上有兩個系統 - 一個用於高可用性(HDR-高可用性數據復制),另一個用於分發數據(ER-企業復制)。 而Mach 11的功能(RSS - 遠程獨立輔助,SDS - 共享磁盤輔助)也非常出色,在11.50中你可以寫入HDR對的主要或輔助。

完全披露:我在使用Informix softare。

我自己沒有嘗試過,但你可能也想看看OpenBaseSQL,它似乎有一些簡單易用的內置復制。

另一種方法是在虛擬化環境中運行。 我認為這篇博客文章中的數據很有趣

http://chucksblog.typepad.com/chucks_blog/2008/09/enterprise-apps.html

它來自EMC執行官,顯然,它不是獨立的,但實驗應該是可重復的

這是Oracle特有的數據

http://oraclestorageguy.typepad.com/oraclestorageguy/2008/09/to-rac-or-not-to-rac-reprise.html

編輯:如果您運行虛擬化,那么有一些方法可以進行任何復制

http://chucksblog.typepad.com/chucks_blog/2008/05/vmwares-srm-cha.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM