危険察知4 択難易度 基礎

状況

DB サーバーで、テーブルを作り直す(一時的に同じ大きさのコピーを作る)ALTER TABLE を始める前に、作業者が df -h を実行した。

作業前に止めるべき点は?

$ df -hFilesystem      Size  Used Avail Use% Mounted on/dev/nvme0n1p1   30G   18G   12G  60% //dev/nvme1n1    200G  196G  4.0G  98% /var/lib/mysql

正答

  1. / が 60% 使われているので、先にログを消して空けるべき
  2. 単位が G で丸められているので、正確な値を -k で確かめるべき
  3. /var/lib/mysql の空きが 4.0G しかなく、コピーを作る ALTER で溢れる
  4. nvme0n1p1 と nvme1n1 で名前の形式が違うので、マウントを確認すべき

解説

テーブルを作り直す ALTER TABLE は、元のテーブルと同じくらいの一時領域を DB のデータ領域に使う。/var/lib/mysql の空きは 4.0G しかなく、対象テーブルが大きければ途中でディスクが溢れ、ALTER が失敗するだけでなく他の書き込みもできなくなり、DB が止まる。対象テーブルの大きさを確かめ、空きを確保してから行う。/ の 60% は余裕があり今回の作業とは関係しない。パーティション名の形式の違いはよくあること。

参考: www.gnu.org

outputdfdisk

この問題を含む 危険察知 のテストを制限時間つきで解く

危険察知クイズへ