MySQL集群错误1114(HY000):表'users'已满

时间:2010-11-14 19:00:34

标签: mysql mysql-management database-cluster

我有一个MySQL集群设置,有2个数据节点和1个管理节点。我们现在在进行插入时会在数据节点上出错。

  

ERROR 1114(HY000):表'用户'已满

请任何帮助,这是一个配置问题,如果是这样的节点?每个节点都是Ubuntu 9服务器。

4 个答案:

答案 0 :(得分:5)

答案在这里: http://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html#qandaitem-B-10-1-13

简而言之:ndb引擎将所有数据保存在RAM中。如果您的节点有1GB RAM并且您正在尝试加载4GB数据库,那么(差点)运气不好。

有一种方法可以配置ndb使用磁盘来存储数据,这样RAM只用于存储索引(它们仍然必须存储在RAM中),具体方法如下: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data-objects.html

但是,如果你这样做,你将获得更低的表现。

答案 1 :(得分:3)

以防万一有人经过这个问题,这个问题的根本原因是MaxNoOfConcurrentOperations的值,应该根据表预期保留的行数相应地提高。{/ p >

以下内容应该是解决此问题的方法。

  1. 更改表初始创建的CREATE TABLE,使MAX_ROWS值包含此表预期保留的行数的两倍。

  2. MaxNoOfConcurrentOperationsMaxNoOfConcurrentTransactions的值增加到高于群集中最大表的值。这可能是因为MySQL Cluster在大型表上应用任何操作时并行处理所有行。

答案 2 :(得分:2)

检查innodb_data_file_path设置 - 此错误表示您已超出该密钥中定义的可用空间。检查this link是否重新定义了InnoDB的空间。

或者,您可能只是存储了数据的分区上的磁盘空间不足。

答案 3 :(得分:1)

当我只加载数据库表时,我遇到了同样的错误。结构体。这意味着DataMemoryIndexMemory在这里没有帮助。 表格的数量也没有达到MaxNoOfTables的限制,所以这也不是问题。 这里的解决方案是增加MaxNoOfOrderedIndexesMaxNoOfUniqueHashIndexes的值,它们反映了群集中可以拥有的最大索引数。因此,如果数据库中有许多索引,请尝试相应地增加这些变量。 当然,必须在更改后[滚动重启] [1]才能生效!

我希望这可以帮助别人!