所以我搞砸了,意外升級了我們的Cassandra 2盒到Cassandra 3.數據完好無損,但我需要將它恢復到Cassandra 2以兼容其他工具。我在這裏閱讀How to downgrade Cassandra 3.0.0 -> 2.x?的帖子,如果這是需要的(不是那麼多的數據),我不得不手動將數據浮動。降級到卡桑德拉2
升級使用apt-get dist-upgrade
偶然做,但沒有被完成之後,有評論詢問使用nodetool
,它不運行,除非它是apt-get process
的一部分。我知道關於管理卡桑德拉的約0。
我已經建立了一個新的卡桑德拉2服務器的下列版本:
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
卡桑德拉3服務器上的版本:
[cqlsh 5.0.1 | Cassandra 3.0.6 | CQL spec 3.4.0 | Native protocol v4]
我用COPY
命令導出所有的數據轉換爲CSV文件,並使用鍵空間上的DESC
使其顯示所有表格及其各自的標題和類型。
如果我嘗試使用.cql
文件我從DESC
命令創建重建密鑰空間和表格,它失敗:
cqlsh -u cassandra -p cassandra -f "mykeyspace.cql"
mykeyspace.cql:22:Bad Request: Unknown property 'crc_check_chance'
mykeyspace.cql:40:Bad Request: Unknown property 'crc_check_chance'
mykeyspace.cql:57:Bad Request: Unknown property 'crc_check_chance'
...
這似乎是創建密鑰空間,我可以在cqlsh
瀏覽它,但它沒有任何表格,所以我無法從CSV導入數據。
我想也許crc_check_chance是在3.x中引入的一個新東西,所以我嘗試刪除它並在刪除密鑰空間後重新運行.cql
文件,但它仍然失敗,只是在其他一些選項上。
我能做些什麼來將這些數據重新存入卡桑德拉2?
編輯:下面是來自出口,我從我的(目前的)有一個表卡桑德拉3實例:
CREATE TABLE mykeyspace.users (
username text PRIMARY KEY,
first_name text,
last_name text,
roles set<text>
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
這種失敗,但如果我刪除以下領域,似乎建表:
AND crc_check_chance = 1.0
AND min_index_interval = 128
AND max_index_interval = 2048
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
即使在創建表,數據無法從CSV導入,這可能是我沒有正確地使用命令:
cqlsh> USE mykeyspace;
cqlsh:mykeyspace> COPY users FROM '/home/user/cassandra/users.csv';
Bad Request: line 1:118 no viable alternative at input ')'
Aborting import at record #0 (line 1). Previously-inserted values still present.
您是否已經運行nodetool upgradesstables? –
fromanator
不明確。儘管如此,我也不知道是否包含apt-get升級順序。 – Andrew