2016-07-28 61 views
1

私は比較的大きな(または少なくとも小さくない)データセットを持つクライアントを持っています。ディスク上の約2Gb。MySQLテーブルがいっぱい(InnoDB) - エラー#1114

このDBで実行されているCRMアプリケーションのレポート機能を実行している、我々は

Database Error Code: The table 'tablexyz' is full, Error 1114 

に見舞われ、このいくつかの理由のために不可解ます。..最初はそれを決めるために管理していることになるの周りに3内レポートをロードしようとしているページの秒数。これはx64ので、x64システムです

B)...それは、InnoDBのテーブルです

A)、そうそこな として明示的な行の制限はありません(または私は間違っている):他の人がいることがありますか?ディスクがいっぱいでないMySQLはとても のInnoDBテーブルの効果的なサイズ制限は4TBのファイルシステムの単一 ファイルサイズの限られ..です

C)をインストール、それは700Gb利用可能 の周りに持っています。ディスク上のibdata1ファイルは1.89Gb、ibログファイルはそれぞれ 5Mbです。クライアントは、私の知る限り、これはこのシナリオに影響を及ぼさない250のカスタムMAX_INDEXES値を要求したとして

MySQLのは、カスタム自分でソースからコンパイルました。

問題を複合するには、テーブルが正常に存在しない場合もあります。このレポートの実行中にオンザフライで作成された一時テーブルのようです。または、少なくとも私はそれがそうだと思う.. CRMアプリケーションでのページの読み込み中は、MySQL内でそのテーブルを見つけることはできない。私は、私が見ていないより深刻な問題があるかどうか、私にそれがいっぱいだと言っている赤いニシンがあるかどうかは分かりません。アイデアを歓迎します。

+0

どのようなクエリが実行されていましたか? –

+0

tmpdirの設定は何ですか?それは "小さな"ファイルシステムを指していますか? –

+0

こんにちはリック、私はtmpdirが5.7で導入されたと思いますか?私は別のことを考えていない限り。このシステムは5.5を実行しています。しかしそれを除いて、システム自体は非常にシンプルで、/ tmp/varなどを含む/ mountのみがあります。あなたの最初の質問に答えて、実際には、私はSQLが何であるか全く分かりません。非常に複雑な組み込みCMSに埋め込まれています。それはむしろ迷惑です。私はそれがCMSのバグだと言いたくなってしまいがちですが、まずはシステム上のすべての可能性をまず取り上げたいと思います。 –

答えて

0

あなたのinnodb_data_file_pathの最大サイズを達成しているようです。

これは役立つ可能性があります。ERROR 1114 (HY000): The table is full

+0

こんにちは、ありがとう。私は "innodb_data_file_path = ibdata1:10M:autoextend"というデカールをmy.cnfでデカールしましたが、これは役に立ちません。私はまた、肯定的な成功なしに、そのリンクからいくつかの他の提案を試みた。 「tmp_table_size = 512M」や「max_heap_table_size = 512M」などのように、 –

+1

これらの512M設定は危険です。これらは、複合選択の一時テーブルのmax_memory_サイズを制御します。それは単なる「接続ごと」ではなく、「per tmp table」でもあります。したがって、これらの値を使用すると、簡単にRAMが不足する可能性があります。 –

+0

@RickJames、それのために、お近くに見て、あなたが正しいです。とにかく、元の問題を解決しなかったので、私はこれらの変更を逆転しました。ありがとう。 –

関連する問題