我试图使用运行在docker容器上的nodetool快照工具获取cassandra数据库的快照。更准确地说,我使用以下命令
nodetool -h cassandra -p 9999 snapshot
error: takeSnapshot(java.lang.String, java.util.Map, [Ljava.lang.String;) -- StackTrace -- java.lang.NoSuchMethodException: takeSnapshot(java.lang.String, java.util.Map, [Ljava.lang.String;) at com.sun.jmx.mbeanserver.PerInterface.noSuchMethod(PerInterface.java:169) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:135) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
有人知道为什么会这样吗?
提前感谢!
看起来Docker内部和主机上的Cassandra版本不兼容--主机上的DataStax Enterprise或Cassandra4.0 beta都有TakesNapshot
函数的另一组参数(该函数是5年前由该提交引入的)。
要解决这个问题,您需要使用相同版本的Cassandra来执行命令,最简单的方法是在Docker容器中使用Docker exec
执行命令
我有几个关于备份/恢复Cassandra集群的最佳方法的问题。 背景:我有一个在EC2中运行的集群。它的节点配置如下: 实例类型:m3.medium存储:50 GB根卷/100 GB另一个卷 在阅读了大量的文件和搜索了一些网站后,我明白了带有Cassandra(nodetool)快照的EBS快照看起来很有前途。 问题:EBS 还拍摄增量快照,Nodetools 也拍摄快照,那么这两个工具有何不同或
Cassandra doc提到“nodetool snapshot”命令对表数据进行快照。然而,我也能够在生成所有快照文件的快照目录中看到schema.cql和manifest.json文件。 这是预期的行为吗?如果需要,我也可以使用此架构.cql 文件来还原架构吗? 我的卡珊德拉版本 编辑: < li >恢复数据时是否必须使用快照中的cql文件?假设我已经创建了存储在其他地方表cql。我能用那个
我正在为一个Cassandra数据库构建一个备份和恢复过程,以便在我需要的时候做好准备,这样我就可以理解细节,以便构建适合生产的东西。我在这里遵循Datastax的说明: http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_backup_restore_c.html。 首先,我将数据库放置在一个d
尝试cassandra快照时发生java错误。 root@cassandramytest]\/usr/local/apache-cassandra-1.1.7/bin/nodetool-h localhost mytest 所以,我添加了 /etc/security/limits.conf 遵循以下步骤:http://www.datastax.com/docs/1.1/troubleshootin
我们定期备份我们的集群,并且每天在aws s3上存储模式和快照备份。 不知何故,我们丢失了所有数据,在从备份中恢复数据时,我们能够恢复模式,但在将快照文件复制到/var/lib/cassandra/data目录时,它没有在表中显示数据。 复制数据后,我们已经完成了nodetool刷新- keyspace表,但仍然没有工作。 你能帮忙吗?
Overview Rados supports two related snapshotting mechanisms: pool snaps: snapshots are implicitely applied to all objects in a pool self managed snaps: the user must provide the current SnapContext on