MySQL Cluster 7.4.15 - Ndb_Restore 由于孤立片段而失败

标签 mysql database fragment cluster-computing

我想知道是否可以删除不允许我使用 NDB_RESTORE 工具执行恢复的表片段。

当我运行恢复时,它会抛出以下错误:

创建表db_died_maestro/def/NDB$FKM_3194_0_mae_tipo_reg_evaluacion失败:721:具有给定名称的架构对象已存在 恢复:无法恢复表:db_died_maestro/def/NDB$FKM_3194_0_mae_tipo_reg_evaluacion ...正在退出 NDBT_ProgramExit:1 - 失败

我之前已经删除了 DB_DIED_MAESTRO 数据库来运行还原,但该片段不会与数据库一起删除。

我已使用以下查询检查该片段是否在数据库目录中:

*从ndbinfo.operations_per_fragment中选择* 其中 fq_name 如 'db_died_maestro%'*

query result

这个查询:

*从ndbinfo.memory_per_fragment中选择* 其中 fq_name 如“%FKM_3194_0_mae_tipo_reg_evaluacion”*

query 2 result

此片段是在之前运行 NDB_RESTORE 工具时创建的。请帮助我。

最佳答案

该表是一个外键“模拟”表(由名称 NDB$FKM 前缀表示)。

在某些情况下会临时创建外键模拟表,以实现 MySQL 的foreign_key_checks = 0 功能。此功能要求存储引擎支持无序创建具有部分定义的外键约束的表,这些约束可以在以后任意启用(无需重新验证)。

外键模拟表通常完全由 MySQL 的 Ndb 存储引擎组件管理,因此除非出现某种故障或错误,否则不应可见。

如果您可以分享有关此问题之前发生的事件的信息,那么这将有助于我们了解此问题是如何发生的以及是否可以避免。

作为一种解决方法,您应该可以在重新尝试失败的恢复之前使用 ndb_drop_table 实用程序删除该表。您可能必须转义从 shell 作为命令行参数传递的名称中的 $。也许您应该检查类似情况下的任何其他 NDB$FKM 表。

关于MySQL Cluster 7.4.15 - Ndb_Restore 由于孤立片段而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579870/

相关文章:

c# - “Column count doesn' t 第 1 行的匹配值计数”

mysql - 加入职位

java - 使用兼容性时从 Activity 中获取 FragmentTransaction 的问题

mysql - 我可以用 int、tinyint、mediumint 等保存什么

mysql - Ruby on Rails :Issue with MySQL lib in Rails 3 Project

php - 从现有的数据库结构 Laravel 生成迁移文件

android 寻呼机滑动标签条 fragment 更换器

php - 避免共享 PHP session

php - 检查我的数据库表中是否存在某个值

android - Fragment addToBackStack 关闭 App