MySQL群集错误1114(HY000):表“用户”已满
-
10-10-2019 - |
题
我有一个MySQL群集设置,有2个数据节点和1个管理节点。现在,在执行插入时,我们正在遇到数据节点的错误。
错误1114(HY000):表“用户”已满
请感谢任何帮助,这是一个配置问题,如果是的,哪个节点?每个节点是Ubuntu 9服务器。
解决方案
答案在这里:http://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html#qandaitem-b-10-13
简而言之:NDB Engine将所有数据保存在RAM中。如果您的节点有1GB RAM,并且您正在尝试加载一个4GB数据库(几乎)是出于运气。
有一种配置NDB使用磁盘存储数据的方法,因此RAM仅用于存储索引(它们仍然必须存储在RAM中),这是:以下方法:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data-objects.html
但是,如果这样做,您的表现将降低。
其他提示
以防万一有人通过此问题,此问题的根本原因是 MaxNoOfConcurrentOperations
, ,应与该表格的行相应地提出。
以下应该是解决此问题的解决方案。
更改表初始创建的创建表以包含MAX_ROWS值为两倍的行数,该表将保留该表。
增加价值
MaxNoOfConcurrentOperations
和MaxNoOfConcurrentTransactions
值高于集群中最大的表。这可能是因为MySQL群集在大桌子上应用任何操作时并行在所有行上工作。
检查 innodb_data_file_path
设置 - 此错误表明您超出了该密钥中定义的可用空间。查看 这个链接 用于重新定义InnoDB的空间。
另外,您可能只能在存储数据上的分区上用完磁盘空间。
当我只加载DB表的结构时,我遇到了相同的错误。意思是 DataMemory
或者 IndexMemory
这里没有帮助。同样,桌子的数量未达到限制 MaxNoOfTables
因此,这也不是问题。我这里的解决方案是增加 MaxNoOfOrderedIndexes
和 MaxNoOfUniqueHashIndexes
这反映了您可以在集群中拥有的最大索引数。因此,如果您的数据库中有许多索引,请尝试相应地增加这些变量。当然,在更改后必须完成[滚动重新启动] [1]!
我希望这可以帮助某人!