簡體   English   中英

Cassandra:如果只對一個節點執行TRUNCATE表並還原備份,我會丟失數據嗎?

[英]Cassandra: If TRUNCATE table and restore backup for only one node, will I loose data?

假設我有[3個節點-1個數據中心-1個群集] cassandra設置。

復制系數= 2的快捷鍵

我正在為所有節點制作定期快照和增量備份。

我的3個節點之一由於任何原因完全崩潰,我想恢復備份。

Cassandra(datastax)文檔建議通常在還原之前對表進行TRUNCATE。

問題:由於我只打算在一個節點上還原備份,因此需要TRUNCATE嗎? 根據我的理解,因為truncate將從所有節點中刪除該表的數據。 截斷文檔

因此,如果我截斷表並僅在一個節點上還原備份,那么我是否也不會丟失該表中存儲在其他節點上的數據?

首先, 在您的方案中 ,您可能根本不想還原備份。 由於復制因子= 2,因此您的數據仍位於原始三個數據庫的另一個節點上。 因此,您可以刪除完全崩潰的節點,然后再次添加它。 Cassandra將自動對其進行加速並將數據流式傳輸到它。

另外,您還可以使用SSTableLoader將數據文件從備份流式傳輸到群集中。

為了知識起見,還有其他幾點:

  • 截斷將刪除所有節點上表中的數據。
  • 如果截斷該表,然后僅在一個節點上進行還原,則丟失的數據將具有復制因子= 2和三個節點。
  • 在您的情況下,不需要截斷

為什么要截斷?

在某些情況下建議使用截斷,因為還原的數據將比新數據具有更舊的時間戳。

您發送的鏈接中的示例很容易解釋這些情況之一。 如果您不小心刪除了很多數據並希望恢復舊數據,則需要先刪除將這些行標記為已刪除的邏輯刪除。

暫無
暫無

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

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