5

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

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

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

4

4 回答 4

6

答案在这里: 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

但是,如果您这样做,您将获得低得多的性能。

于 2012-03-19T17:40:37.783 回答
3

Just in case someone passes by this issue, The root cause for this issue is the value for MaxNoOfConcurrentOperations, which should be raised accordingly in conjunction to the number of rows the table is expected to hold.

The following should be solutions for this issue.

  1. Change the CREATE TABLE of the table initial creation to include MAX_ROWS value to be double the number of rows this table is expected to hold.

  2. Increase the value of MaxNoOfConcurrentOperations and MaxNoOfConcurrentTransactions to a value higher than the largest table in the cluster. This is probably because MySQL Cluster works on all rows in parallel when applying any operation on a large table.

于 2012-11-27T05:35:43.633 回答
2

检查innodb_data_file_path设置 - 此错误表明您已超出该键中定义的可用空间。检查此链接以重新定义 InnoDB 的空间。

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

于 2010-11-14T19:02:24.917 回答
1

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

我希望这可以帮助某人!

于 2016-06-24T21:57:29.087 回答