我目前正计划升级到2.0.7 cassandra版本。 我的基本版本是2.0.3。 到目前为止,我还没有进行升级,因此想绝对确定自己在做什么。 有人可以在此之前解释一下需要做什么。

  1. 执行nodetool消耗以停止对特定节点的所有写操作。
  2. 停止cassandra节点(我有8个节点,2个数据中心网络拓扑。我在DC1中关闭了一个节点)
  3. 在新的二进制tarball中相应地更改cassandra.yaml。
  4. 对新节点进行必要的更改(使用闲聊属性文件snitch。因此,对此进行更改)
  5. 开始新的cassandra二进制文件(2.0.7)

问题最让我震惊

  1. 我是否必须将数据从2.0.3复制到2.0.7? 2.即使是滚动升级,我认为也可以执行以下步骤(从一个版本升级到另一个版本除外)。 我的假设是对的吗?
  2. 我将在正在运行的应用程序上执行此操作。 我打算在运行该应用程序的同时执行此操作,因为我在本地仲裁中有足够的副本来满足读取和写入操作。 这个想法有什么缺点吗? 我喜欢cassandra进行这种手术,但想知道是否存在任何潜在的问题?
  3. 执行此操作时,我将在运行的计算机中使用现有的2.0.3。 如果2.0.7中有问题,我将重新启动2.0.3版本,对吗? 只是想知道与集群中其他节点是否存在任何数据冲突? 还是拥有快照来恢复数据是最佳选择? 5.除此之外,还有其他我要记住的事情吗?

===============>>#1 票数:1 已采纳

我是否必须将数据从2.0.3复制到2.0.7? 2.即使是滚动升级,我认为也可以执行以下步骤(从一个版本升级到另一个版本除外)。 我的假设是对的吗?

如果仅升级二进制文件,则可以保留所有数据,它将自动使用它。

我将在正在运行的应用程序上执行此操作。 我打算在运行该应用程序的同时执行此操作,因为我在本地仲裁中有足够的副本来满足读取和写入操作。 这个想法有什么缺点吗? 我喜欢cassandra进行这种手术,但想知道是否存在任何潜在的问题?

正常的读写操作就可以了。 在临时运行混合版本集群时,最好避免做任何涉及流传输(修复)或拓扑更改(引导或停用节点)的事情。 它们可能会起作用,但没有得到官方的支持,您更有可能遇到问题。

执行此操作时,我将在运行的计算机中使用现有的2.0.3。 如果2.0.7中有问题,我将重新启动2.0.3版本,对吗? 只是想知道与集群中其他节点是否存在任何数据冲突? 还是拥有快照来恢复数据是最佳选择?

您想要快照来恢复。 较新版本的Cassandra可能会使用新的SSTable或commitlog格式,而较旧的版本将无法读取。

  ask by Ananth translate from so

未解决问题?本站智能推荐: