2010-11-14 51 views
4

我有一個MySQL集羣設置,有2個數據節點和1個管理節點。插入時,我們現在在我們的數據節點上發生錯誤。MySQL集羣錯誤1114(HY000):表'用戶'已滿

ERROR 1114(HY000):表 '用戶' 是全

請任何幫助表示讚賞,這是一個配置的問題,如果是哪個節點?每個節點都是Ubuntu 9服務器。

回答

5

答案就在這裏: 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

如果你這樣做然而,你會得到更低的表現。

+0

我有同樣的問題,每個節點有48GB RAM和一個1.5G表(DataMemory 30G,IndexMemory 10G)。 「表已滿」發生在160MB。我認爲別的可能是錯的。 – 2012-09-24 22:07:31

2

檢查innodb_data_file_path設置 - 此錯誤表明您已超出該密鑰中定義的可用空間。檢查this link爲InnoDB重新定義空間。

或者,您可能只是用盡了存儲數據的分區上的磁盤空間。

+0

我們正在使用ENGINE = ndbcluster。我還需要innodb_data_file_path – 2010-11-14 20:20:32

+0

解決此問題是否已達成? – 2011-11-03 01:24:14

+0

這個答案是錯誤的。innodb_data_file_path僅與innodb存儲引擎相關,對ndbcluster沒有影響。詳情請參閱下面的答案。 – Sergio 2012-03-19 17:42:51

2

萬一有人經過這個問題,根本原因這個問題是MaxNoOfConcurrentOperations值,它應該相應地結合提升到行的表,預計容納的人數。

以下應該是解決此問題的方法。

  1. 變化表初始創建的CREATE TABLE包括MAX_ROWS值是該行表有望保持雙數。

  2. MaxNoOfConcurrentOperationsMaxNoOfConcurrentTransactions的值增加到高於羣集中最大表的值。這可能是因爲MySQL Cluster在大型表上應用任何操作時並行處理所有行。

0

我在加載數據庫表結構時遇到了同樣的錯誤。這意味着DataMemoryIndexMemory在這裏沒有幫助。 此外,表格數量沒有達到MaxNoOfTables的限制,所以它也不是問題。 我在這裏的解決方案是增加MaxNoOfOrderedIndexesMaxNoOfUniqueHashIndexes的值,這些值反映了羣集中可以擁有的最大索引數。因此,如果數據庫中有很多索引,請嘗試相應地增加這些變量。 當然,必須在更改生效後執行[滾動重啓] [1]!

我希望這可以幫助別人!

相關問題