2009-11-23 48 views
1

我有一個由MySQL + EC2 + EBS支持的Java Web服務。爲了保證數據的完整性,我研究了DRBD,MySQL集羣等,但不知道是否沒有更簡單的解決方案。我並不需要高可用性(可以辦理停機)使用MySQL + EC2自制便宜又快樂的集羣?

只有幾個操作,其數據我需要保存 - 創建一個帳戶,更改密碼,購買收據。大部分數據我都可以從過時的備份中恢復。

我在想,我可以將選定的INSERT/UPDATE命令存儲到存儲器中(例如S3,SimpleDB),以及在需要時(當db爆炸時)從上次備份點重播這些命令。如果這個功能是在JDBC驅動程序本身中實現的,那麼它會不會很整潔。

這是太傻了工作,還是我失去了另一個明顯和可靠的解決方案?

回答

1

你有沒有看着移動你的MySQL到Amazon Web Services的呢?您可以使用Amazon Relational Database Service (RDS)。另見MySQL Enterprise Support

+0

是的,我已經看過@ RDS,但即使有備份(快照)是長達5分鐘過時。我需要另一種方法來保存不能過期的關鍵表。 – sehugg

+1

企業支持具有「用於主/從數據庫複製,故障轉移和備份支持的MySQL複製」。從服務器應該能夠接管沒有數據丟失,雖然它可能有一定程度的*複製滯後*,因爲它完成處理來自現在死主的更新。使用標準的MYSQL工具可能會更好,而不是自己動手。 –

0

總是有一個窗口,其中服務器和相關文件存儲的總損失將導致一定數量的丟失數據。

當我跑在AWS一個適度繁忙的SaaS解決方案,我有一個大的實例上運行一個MySQL主和MySQL從不同可用性區域上的一個小實例上運行。複製滯後時間通常不會超過2秒,但流量激增可能需要一到兩分鐘。

如果您不能負擔失去5分鐘數據,我建議運行的主/從設置在滾動自己的恢復機制。如果您確實推出自己的產品,請確保「陳舊」備份和記錄/日誌記錄的關鍵數據位於不同的可用區域。 AWS之前已經失去了整個區域。