【问题标题】:Start data node without --initial mysql cluster启动没有--initial mysql集群的数据节点
【发布时间】:2013-11-15 18:03:46
【问题描述】:

我已经设置了一个包含基于磁盘的表的集群,其中包含 2 个数据节点、一个 mgmt 和 2 个 sql 节点。

集群运行良好... 所以我只是想测试它的 HA ,所以我在 linux 提示符下使用 KILL 命令手动杀死了一个数据节点,然后连接到 sql 节点并将一些记录插入到表中。

然后我尝试启动我用这个命令杀死的datanode

bin/ndbd 不使用任何 --initial

当我在 managmnt 节点上看到日志时 它显示以下错误并且数据节点未启动:

/节点 3:强制节点关闭已完成。在启动阶段 5 期间发生。由错误 2355 引起:“无法恢复架构(资源配置错误)。永久性错误,需要外部操作”。

但是当我使用 --initial 它启动时,它意味着从头开始(复制所有数据文件会很耗时,如果我们有 100G 怎么办?)

但我希望数据节点从它停止的点开始复制记录(杀死)

我该怎么做?

【问题讨论】:

    标签: mysql mysql-cluster


    【解决方案1】:

    您遇到了不可恢复的故障(针对该节点,而不是整个集群),因此您别无选择,只能重建它。要避免这种情况,请安全地停止节点而不是终止进程。例如停止节点 3 运行:

    ndb_mgm -e '3 stop'
    

    但是,如果该节点组(您只有一个组)中的节点仍然可以从中恢复数据,则恢复您不会丢失数据。

    先启动节点组中的其他节点。

    /bin/ndbd
    

    检查它们是否“开始”(否则您将丢失数据)

    ndb_mgm -e show
    

    在损坏的节点上用其他节点的数据初始化它

    node 3> /bin/ndbd --initial
    

    【讨论】:

    • 但这不会要求节点 3 检索数据的新副本,即使它们已经存在?
    • 正确。我想我应该更新答案来说明如何避免这种情况......完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    相关资源
    最近更新 更多