1

私は愚かにも、コピーするのに十分なディスク容量がない列をテーブルに追加しようとしました。その列を強制終了し、サイトのクラッシュを回避するためにRDSインスタンスのストレージ容量を拡張する必要がありました。もう一度やりたいのですが(今回は十分なディスク容量があります)、クエリ前の空きストレージレベルに戻れないようです。私のクエリは、巨大なテーブルのようなテーブルを作成し、列を追加してから、古いテーブルの内容全体をnullとともに新しいテーブルに挿入することでした。試しましたが、AWS Cloudwatchパネルで判断すると、クエリ前のレベルからまだ最大10GB下がっていますCALL mysql.rds_rotate_slow_log;CALL mysql.rds_rotate_general_log;新しいテーブルに正常に挿入された行はありません。「hddキャッシュのクリア」コマンドなどはありますか?RDSなので、そのインスタンスにアクセスできません。

編集:私の問題は巨大なibdataファイルに関連しているようですが、rootアクセス権がないため 、MySQLでibdata1ファイルを縮小/パージする方法に記載されているソリューションを実際に実行できません

4

1 に答える 1

3

解決策は、新しいテーブルを削除することでした。0が返されたため、新しいテーブルに何も格納されていないと思いましたがselect count(*) from new_table;、とにかく一時データは新しいテーブルに関連付けられていたと思います。データベースの構造的な観点からこれがどのように正確に機能するかはわかりませんが、幸いなことに、私が望んでいたことを実行しました。

結論:強制終了されたインサートは引き続きストレージスペースを使用します。

なぜそうなのかを誰かが説明できれば、将来に役立つでしょう。

于 2012-06-28T10:04:41.533 に答える