[英]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將數據文件從備份流式傳輸到群集中。
為了知識起見,還有其他幾點:
為什么要截斷?
在某些情況下建議使用截斷,因為還原的數據將比新數據具有更舊的時間戳。
您發送的鏈接中的示例很容易解釋這些情況之一。 如果您不小心刪除了很多數據並希望恢復舊數據,則需要先刪除將這些行標記為已刪除的邏輯刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.