5

MySQLクラスターをセットアップしています。2つのデータノードと1つの管理ノードがあります。挿入を行うときにデータノードでエラーが発生するようになりました。

エラー1114(HY000):テーブル'users'がいっぱいです

助けていただければ幸いです。これは構成の問題ですか?もしそうなら、どのノードですか?各ノードはUbuntu9サーバーです。

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のデータベースを読み込もうとしている場合、(ほぼ)運が悪いことになります。

RAMがインデックスの保存にのみ使用されるようにディスクを使用してデータを保存するようにndbを構成する方法があります(それらは引き続きRAMに保存する必要があります)。方法は次のとおりです。http: //dev.mysql.com/doc/refman /5.1/en/mysql-cluster-disk-data-objects.html

ただし、これを行うと、パフォーマンスが大幅に低下します。

于 2012-03-19T17:40:37.783 に答える
3

誰かがこの問題を通過した場合に備えて、この問題の根本的な原因はの値ですMaxNoOfConcurrentOperations。これは、テーブルが保持すると予想される行数に応じて増やす必要があります。

以下は、この問題の解決策です。

  1. テーブルの初期作成のCREATETABLEを変更して、MAX_ROWS値を含め、このテーブルが保持すると予想される行数の2倍にします。

  2. MaxNoOfConcurrentOperationsとの値をMaxNoOfConcurrentTransactions、クラスター内の最大のテーブルよりも高い値に増やします。これは、大きなテーブルに操作を適用するときに、MySQLクラスターがすべての行で並行して機能するためと考えられます。

于 2012-11-27T05:35:43.633 に答える
2

設定を確認してください。innodb_data_file_pathこのエラーは、そのキーで定義されている使用可能なスペースを超えたことを示しています。InnoDBのスペースを再定義するには、このリンクを確認してください。

または、データが保存されているパーティションのディスク領域が不足している可能性があります。

于 2010-11-14T19:02:24.917 に答える
1

DBテーブルの構造のみをロードしているときに、同じエラーが発生しました。これは、ここで役に立ったかどうかを意味DataMemoryIndexMemoryます。また、テーブルの数が制限に達していないMaxNoOfTablesため、問題ではありません。ここでの解決策は、クラスター内に持つことができるインデックスの最大数を反映する値MaxNoOfOrderedIndexesを増やすことでした。MaxNoOfUniqueHashIndexesしたがって、DBに多くのインデックスがある場合は、それに応じてそれらの変数を増やしてみてください。もちろん、その変更を有効にするには、[ローリングリスタート][1]を実行する必要があります。

これが誰かに役立つことを願っています!

于 2016-06-24T21:57:29.087 に答える