MySQLクラスターエラー1114(HY000):テーブル「ユーザー」がいっぱいです

StackOverflow https://stackoverflow.com/questions/4179087

質問

MySQLクラスターのセットアップがあり、2つのデータノードと1つの管理ノードがあります。インサートを実行するときに、データノードのエラーが発生しました。

エラー1114(HY000):テーブル「ユーザー」がいっぱいです

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

役に立ちましたか?

解決

答えはここにあります:http://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html#qandaitem-b-10-1-13

要するに、NDBエンジンはRAMのすべてのデータを保持します。ノードには1GB RAMがあり、4GBのデータベースを(ほぼ)運がない場合があります。

DISKを使用するようにNDBを構成してデータを保存する方法があります。これにより、RAMはインデックスの保存にのみ使用されるように(まだRAMに保存する必要があります)、次の方法があります。http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data-objects.html

ただし、そうすれば、パフォーマンスがはるかに低くなります。

他のヒント

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

以下は、この問題の解決策である必要があります。

  1. テーブルの作成テーブルを変更して、初期作成のテーブルを変更して、MAX_ROWS値を含めるようにこのテーブルが保持する行の2倍になります。

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

を確認します innodb_data_file_path 設定 - このエラーは、そのキーで定義された利用可能なスペースを超えたことを示唆しています。小切手 このリンク Innodbのスペースを再定義するため。

または、データが保存されているパーティション上のディスクスペースがなくなっただけです。

DBテーブルの構造のみをロードしていたときに、同じエラーに直面しました。それは意味します DataMemory また IndexMemory ここでは助けがありませんでした。また、テーブルの数は制限に達しませんでした MaxNoOfTables ですから、それも問題ではありません。ここでの私にとっての解決策は、の値を増やすことでした MaxNoOfOrderedIndexesMaxNoOfUniqueHashIndexes これは、クラスターで持つことができる最大数のインデックスを反映しています。したがって、DBに多くのインデックスがある場合は、それに応じてこれらの変数を増やすようにしてください。もちろん、[ローリング再起動] [1]は、その変更後に実行する必要があります!

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top