MySQL Cluster ndb_restore 失败且无错误

MySQL Cluster ndb_restore 失败且无错误

我一直致力于将我们当前的单实例数据库迁移到运行 MySQL 集群的新集群数据库。

它是一个大型数据库(数十亿条记录),虽然它似乎运行良好,但我很难恢复备份(对于第二个站点开发副本)

备份仅包含约 8 亿份报告,硬件应该能够很好地处理。但是,当我尝试恢复备份时(可能需要数小时甚至数天!)某些节点恢复会停止 - 原因不明,日志中也没有任何明显信息。

我已经在 Google 上进行了尽可能的搜索,但似乎找不到遇到过此问题的人。

有问题的数据库包含大约 30 个表,其中一个表包含大多数报告。我可以很好地恢复所有表的元数据,以及除大表之外的所有元数据(使用 exclude-table 标志)。但是当我尝试恢复大表时,我遇到了这个问题,ndb_restore 会停止。

我正在使用带有 ndb-7.4.5 的 MySQL 集群 5.6.23。集群由 6 个数据节点(运行 ndbmtd)、1 个管理节点和 3 个 API 节点(每个节点有 3 个连接,因此逻辑上 3 台服务器上有 9 个 API 节点)构建。

所涉及的所有表都是磁盘数据表,表空间足够大以包含整个数据集,并且系统具有足够的 RAM 来保存索引和索引列。

任何帮助都将不胜感激(如果您需要更多信息,请询问!)

答案1

我认为我已经找到解决办法了。

我一直通过脚本运行 ndb_restore,因为我目前无法物理访问服务器,所以一直通过 SSH 连接执行该脚本。因此,当 SSH 会话终止时,ndb_restore 会收到 SIGHUP。我相信这就是导致进程停止而没有任何通知或日志消息的原因。

后来我发现我可以通过以下方式防止这种情况,一旦脚本已在后台运行(ctrl + z; bg),请运行:

disown [job id]

有关详细信息,请参阅:

相关内容