2015-04-17 76 views
1

我已經在cassandra.yaml文件中啓用了增量備份。正如我所知道的,當我們啓用增量備份時,只有當memtable被刷新時,cassandra纔會備份數據(在備份目錄中)。但是如果memtable還沒有被刷新呢?我將無法獲得正確的增量備份?我知道,爲了刷新memtable,需要滿足某些條件,例如時間間隔或memtable空間。我的問題是,如何修改此內容,以便即使在最後一個快照之後輸入一條記錄,我仍然可以將整個數據與最新條目一起備份? 考慮這個例子如何修改cassandra中的memtable刷新時間間隔?

  1. 拍攝快照。
  2. 清除增量備份(備份目錄)
  3. 輸入記錄的表。
  4. 檢查備份目錄中的增量備份。它仍然是空的。

現在如何備份上次快照後寫入的記錄?一般情況下,除非我們拍攝快照,否則我們如何備份整個最新數據?

回答

0

如果你想備份集羣,而不通過簡單地保存下從每一個節點/數據夾中的一切拍攝快照,你可以做到這一點(這包括主要的db文件統計文件等)。

爲了不覆蓋文件,您還應該使用令牌信息來存儲它。

當你想從備份中恢復,你應該旋轉起來集羣具有相同數量的節點,並簡單的數據,一對分別來自備份節點複製到恢復的節點。請注意,您必須修改cassandra.yaml以將相關標記包含在每個已還原節點的cassandra.yaml(以及peers/seeds/etc)中。

複製完所有數據後,可以在所有節點上啓動C *進程。

1

您可以手動nodetool flush刷新文件只是把備份之前。這樣,你將始終擁有最新的memtable刷新。

nodetool docs