2016-02-27 43 views
0

我想從Cassandra升級到最新的Datastax Enterprise,除了事實上我無法獲取我的數據,一切都很順利。升級後恢復數據Cassandra

基本上,升級後我有一個乾淨的cassandra,然後我重新創建模式,並嘗試以某種方式將舊數據庫中剩下的文件鏈接到新數據庫。

這就是我現在所擁有的在/var/lib/cassandra/data/wowch目錄,例如:

drwxr-x--- 4 cassandra cassandra 4.0K Feb 27 13:05 users-247834809d2011e58d82b7a748b1d9c2/ 
drwxr-xr-x 2 cassandra cassandra 4.0K Feb 27 18:53 users-f41a5300dd5611e58bc7b7a748b1d9c2/ 

我得到,舊的目錄是什麼在升級之前的分貝。它包含了一些數據庫文件:

total 144K 
drwxr-x--- 4 cassandra cassandra 4.0K Feb 27 13:05 ./ 
drwxr-x--- 60 cassandra cassandra 20K Feb 27 14:35 ../ 
drwxr-x--- 2 cassandra cassandra 4.0K Dec 7 21:21 backups/ 
-rwxr-x--- 2 cassandra cassandra 51 Jan 20 00:05 ma-46-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 828 Jan 20 00:05 ma-46-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Jan 20 00:05 ma-46-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Jan 20 00:05 ma-46-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 83 Jan 20 00:05 ma-46-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.9K Jan 20 00:05 ma-46-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Jan 20 00:05 ma-46-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Jan 20 00:05 ma-46-big-TOC.txt* 
-rwxr-x--- 2 cassandra cassandra 43 Feb 12 15:05 ma-47-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 41 Feb 12 15:05 ma-47-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Feb 12 15:05 ma-47-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Feb 12 15:05 ma-47-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 20 Feb 12 15:05 ma-47-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.5K Feb 12 15:05 ma-47-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 15:05 ma-47-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 15:05 ma-47-big-TOC.txt* 
-rwxr-x--- 2 cassandra cassandra 43 Feb 12 16:05 ma-48-big-CompressionInfo.db* 
-rwxr-x--- 2 cassandra cassandra 169 Feb 12 16:05 ma-48-big-Data.db* 
-rwxr-x--- 2 cassandra cassandra 10 Feb 12 16:05 ma-48-big-Digest.crc32* 
-rwxr-x--- 2 cassandra cassandra 16 Feb 12 16:05 ma-48-big-Filter.db* 
-rwxr-x--- 2 cassandra cassandra 20 Feb 12 16:05 ma-48-big-Index.db* 
-rwxr-x--- 2 cassandra cassandra 4.9K Feb 12 16:05 ma-48-big-Statistics.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 16:05 ma-48-big-Summary.db* 
-rwxr-x--- 2 cassandra cassandra 92 Feb 12 16:05 ma-48-big-TOC.txt* 
-rwxr-x--- 1 cassandra cassandra 31 Dec 7 21:26 manifest.json* 
drwxr-x--- 3 cassandra cassandra 4.0K Feb 27 13:05 snapshots/ 

我試圖從這裏複製所有的東西到users-f41a5300dd5611e58bc7b7a748b1d9c2/目錄並運行nodetool repairnodetool refresh -- wowch users,但沒有成功 - 數據仍然沒有加載。

我忘記了什麼嗎?什麼是正確的做法以及如何獲取數據?

回答

0

這有可能是你碰到的this issue,但沒有更多的信息,我不能肯定地說。

您還沒有提供關於開始和結束的版本的信息。多一點信息會非常有幫助。你能否澄清一下 - 你是從社區Cassandra升級到DSE嗎?我不能從你的問題措辭的方式來分辨。

檢查的東西:您是否擁有舊版本的令牌分配?我沒有使用vnodes,我發現在備份/恢復羣集後,我必須在cassandra.yaml中手動設置initial_token。確保cassandra擁有所有的dirs和文件。導入架構後,停止DSE,然後清空commitlog目錄的內容。如有必要,將數據移動到新文件夾中,然後重新啓動DSE。希望這可以幫助。

+0

是的,我從社區Cassandra(2.2)更新到DSE(4.8)。 –

+0

和我完全複製了舊配置中的配置文件到新配置文件,所以最初的令牌在這裏不是這種情況(此外,我沒有指定它,它保留爲默認值) –

+0

如果您有輸出' nodetool ring',您將看到自動分配的節點的令牌範圍。在您還原的系統上,您必須在每個節點上編輯cassandra.yaml並手動分配相同的令牌。否則,當分區器試圖查詢環時,節點將不知道它們負責的令牌環的哪一部分。 – LHWizard