KEY_BLOCK_SIZE
を変更して圧縮を有効にするようにテーブルを変更しようとすると、次のエラーが発生しました:
エラー1296(HY000):InnoDBからエラー64「一時ファイルの書き込みエラー」が発生しました
コマンドの実行は次のとおりです。
MariaDB [events_prod]> alter table positions KEY_BLOCK_SIZE=8;
変更テーブルは、このエラーを生成する前に約1時間実行されました。問題のテーブルは280ギガバイトであり、それが常駐するファイルシステムには3.4テラバイトの空きがあります。ストレージごとにテーブルごとのファイルとバラクーダをすでに使用しています。
このエラーの原因が何であるか、またはどこで解決しようとするのかを説明しているドキュメントが見つからないようです。どんな提案でも大歓迎です!
エラーメッセージをよく見てください
エラー1296(HY000):InnoDBからエラー64「一時ファイルの書き込みエラー」が発生しました
エラー64とは何ですか? perror は次のように述べています。
$ perror 64
OS error code 64: Machine is not on the network
ALTER TABLE
コマンドは、新しい圧縮で一時ファイルを作成します。ただし、一時ファイルを作成しようとしていますが、ディレクトリに書き込むことができません tmpdir がマップされています。
ALTER TABLE
が操作を完了できなくなります。この問題が繰り返し発生する場合は、この変更を手動で行うことをお勧めします。
create table positions_comp like positions;
alter table positions_comp KEY_BLOCK_SIZE=8;
insert into positions_comp select * from positions;
alter table positions rename positions_old;
alter table positions_comp rename positions;