Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 将Cassandra数据库复制到测试主机_Ubuntu_Cassandra - Fatal编程技术网

Ubuntu 将Cassandra数据库复制到测试主机

Ubuntu 将Cassandra数据库复制到测试主机,ubuntu,cassandra,Ubuntu,Cassandra,我想把一个Cassandra数据库复制到我的Ubuntu12.04系统中(不用于生产,只用于测试——是的,我对Cassandra完全陌生),这样我就可以查看数据库,而不必担心把事情搞砸。将完整的Cassandra数据库复制到另一台主机的最简单方法是什么 谢谢 Rob这取决于您的设置。通常,如果源集群由多个节点组成,则必须同时创建每个节点的快照,然后将所有节点的快照从/var/lib/cassandra/data///snapshots/复制到单个目标主机。这样你就可以确保你没有错过任何东西 我更

我想把一个Cassandra数据库复制到我的Ubuntu12.04系统中(不用于生产,只用于测试——是的,我对Cassandra完全陌生),这样我就可以查看数据库,而不必担心把事情搞砸。将完整的Cassandra数据库复制到另一台主机的最简单方法是什么

谢谢


Rob

这取决于您的设置。通常,如果源集群由多个节点组成,则必须同时创建每个节点的快照,然后将所有节点的快照从/var/lib/cassandra/data///snapshots/复制到单个目标主机。这样你就可以确保你没有错过任何东西

我更喜欢的方法是通过自动化。如果您的测试环境的节点数与生产环境的节点数相同,那么您可以使用诸如Priam()之类的工具从生产备份自动恢复到测试集群。我使用此方法自动使用前一天晚上的生产快照刷新登台环境


也许第一种方法也可以自动化

好的,所以我可能不是特别聪明,但是…到目前为止,我在这里做的是创建我要复制的键空间中所有列族的快照。然后我将它们复制到本地节点,但Cassandra没有看到它们。我假设我需要采取一些额外的步骤,让Cassandra知道我不知道的新密钥空间。我的环境是一个运行Cassandra的单节点“集群”,其中有一个键空间(系统除外),我希望将其复制到本地节点。我需要做什么才能让Cassandra知道新的密钥空间?您是否也复制了系统的密钥空间?请在您的测试机器上尝试以下操作:关闭Cassandra,然后删除系统密钥空间文件,从而删除系统的密钥空间。然后开始卡桑德拉。转到您熟悉的cassandra cli或cqlsh,重新执行用于创建原始集群的create schema命令。然后卡桑德拉开始了解这个模式。重新启动,它应该会查看您的模式文件。我一直在使用Ubuntu apt get版本时遇到问题,它是1.1.12,而集群使用的是1.2.10,因此我最终从Apache下载了1.2.10,将其安装到我的主目录下的本地目录中,按照您的指示进行操作,即,我将快照复制到本地数据目录的键空间名称下,关闭cassandra,删除数据/系统,重新启动cassandra,并使用cassandra cli