sac*_*hin 5 database-migration cassandra nosql scylla cassandra-3.0
我运行了 21 个节点的 Cassandra 集群,其中包含 150 多个架构和大约 20 TB 的数据。我需要在没有停机的情况下将架构和数据从 Cassandra 转移到 7 节点 Scylla。
Scylla 和 Cassandra 都支持相同的 cqlsh 版本,并且在分发数据和八卦方面几乎相同。
为了转移数据,我试图在现有的 Cassandra 集群中创建新的 Scylla 数据中心并更新 Keyspace 拓扑以使 Scylla 也在复制的 DC 列表中,然后引导/重建集群中的 Scylla 节点。
为此,我在 node.js 中添加种子列表时收到 TCP 连接失败的错误。
Scylla 错误:-
scylla:[shard 0] rpc - 客户端 10.200.1.2:34236:服务器连接断开:连接关闭 scylla:[shard 0] rpc - 客户端 10.200.1.2:7000:连接失败:连接被拒绝。
卡桑德拉错误:-
[MessagingService-Outgoing-/10.200.2.2-Gossip] OutboundTcpConnection.java:411 - 到 /10.200.2.2 的套接字已关闭 [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:570 - 无法与 /10.20.20HAND 握手版本/10.200.2.2] OutboundTcpConnection.java:561 - 与 /10.200.2.2 的握手版本
请帮助我,如果有人已经这样做了,或者有更好的想法在不停机的情况下转移数据,没有数据丢失,风险更小。
Mor*_*cia 11
您不能在同一集群上拥有包含 C* 和 Scylla 节点的异构集群。
创建一个单独的 scylla 集群,创建架构,更改应用程序以执行双重写入(对两个集群),然后将 C* 历史数据迁移到 Scylla。
有多种方法可以迁移数据。这应该会有所帮助:https : //youtu.be/CDOesdWDT9Y没有停机时间,没问题,也有相应的选择。
Scy*_*reg 10
尽管 Scylla 在多个轴(SSTable、CQL/驱动程序等)上与 Cassandra 兼容,但 Scylla 确实需要对 gossip 协议进行一些更改,这使得无法加入 Cassandra 集群。没有已知的方法可以将 Scylla 加入 Cassandra 集群。
Scylla 已经发布了几个建议的迁移技术。
描述技术的博客:https : //www.scylladb.com/2019/04/02/spark-file-transfer-and-more-strategies-for-migrating-data-to-and-from-a-cassandra-or -scylla-cluster/
介绍迁移技术的网络研讨会 [需要注册]:https : //go.scylladb.com/wbn-spark-scylla-migration-strategies-registration.html
文档:https : //docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/
问答社区 Slack:http : //slack.scylladb.com