所以我搞砸了,意外升级了我们的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