我有一个MySQL集群设置,有2个数据节点和1个管理节点。插入时,我们现在在我们的数据节点上发生错误。MySQL集群错误1114(HY000):表'用户'已满
ERROR 1114(HY000):表 '用户' 是全
请任何帮助表示赞赏,这是一个配置的问题,如果是哪个节点?每个节点都是Ubuntu 9服务器。
我有一个MySQL集群设置,有2个数据节点和1个管理节点。插入时,我们现在在我们的数据节点上发生错误。MySQL集群错误1114(HY000):表'用户'已满
ERROR 1114(HY000):表 '用户' 是全
请任何帮助表示赞赏,这是一个配置的问题,如果是哪个节点?每个节点都是Ubuntu 9服务器。
答案就在这里: http://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html#qandaitem-B-10-1-13
简称:NDB引擎保持在RAM中的所有数据。如果你的节点有1GB的内存,并且你正在尝试加载4GB的数据库,那你几乎是不走运的。
有配置NDB使用磁盘来存储数据,使内存仅用于存储索引(他们仍然存储在RAM)的方式,这里是如何: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data-objects.html
如果你这样做然而,你会得到更低的表现。
检查innodb_data_file_path
设置 - 此错误表明您已超出该密钥中定义的可用空间。检查this link为InnoDB重新定义空间。
或者,您可能只是用尽了存储数据的分区上的磁盘空间。
我们正在使用ENGINE = ndbcluster。我还需要innodb_data_file_path – 2010-11-14 20:20:32
解决此问题是否已达成? – 2011-11-03 01:24:14
这个答案是错误的。innodb_data_file_path仅与innodb存储引擎相关,对ndbcluster没有影响。详情请参阅下面的答案。 – Sergio 2012-03-19 17:42:51
万一有人经过这个问题,根本原因这个问题是MaxNoOfConcurrentOperations
值,它应该相应地结合提升到行的表,预计容纳的人数。
以下应该是解决此问题的方法。
变化表初始创建的CREATE TABLE包括MAX_ROWS值是该行表有望保持双数。
将MaxNoOfConcurrentOperations
和MaxNoOfConcurrentTransactions
的值增加到高于群集中最大表的值。这可能是因为MySQL Cluster在大型表上应用任何操作时并行处理所有行。
我在加载数据库表结构时遇到了同样的错误。这意味着DataMemory
或IndexMemory
在这里没有帮助。 此外,表格数量没有达到MaxNoOfTables
的限制,所以它也不是问题。 我在这里的解决方案是增加MaxNoOfOrderedIndexes
和MaxNoOfUniqueHashIndexes
的值,这些值反映了群集中可以拥有的最大索引数。因此,如果数据库中有很多索引,请尝试相应地增加这些变量。 当然,必须在更改生效后执行[滚动重启] [1]!
我希望这可以帮助别人!
我有同样的问题,每个节点有48GB RAM和一个1.5G表(DataMemory 30G,IndexMemory 10G)。 “表已满”发生在160MB。我认为别的可能是错的。 – 2012-09-24 22:07:31