AWSのRDSをアップグレードのためテストしてたらストレージ不足
おはようございます。またご無沙汰になってしまいました。ネタを見つけるたびにブログ書かないとダメですね。今日はネタ見つけたので書けます。
アマゾンからこんなメールがきました。
Hello, We are reaching out to you to let you know that we will be ending support for MySQL minor engine version 5.7.10 in Amazon RDS on July ...以下省略
MySQLの「5.7.10」を使ってるユーザーはサポート対象外になるから勝手にアップグレードするよ。とのことです。運用中に勝手にアップグレードされると困るので事前アップグレードを計画しようと思いまして、作業手順確認をしようとテスト用のRDSを起動しました。せっかくなんで少し多めにテストデータくらいいれとこと思ったら「ストレージ不足」が発生。いい練習をさせてもらいました。
最初にテーブル作ってデータ投入
create table test (id int auto_increment, name varchar(10), index(id)); insert into test (name) values ('aaaaa'), ('bbbbb'), ('ccccc'),('ddddd'),('eeeee'),('fffff'),('ggggg'),('hhhhh'),('iiiii'),('jjjjj'),('kkkkk'); insert into test (name) select s1.name from test s1, test s2, test s3, test s4, test s5, test s6, test s7, test s8;
と、
ERROR 1114 (HY000): The table '/rdsdbdata/tmp/#sql_1fbf_0' is full
もう一切SQL文受け付けてくれなくなりました。
仕方なく一度抜けて再度接続を。
mysql -u e2_admin -p -h updatetest.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com Enter password: ERROR 1040 (HY000): Too many connections
再起動したら圧縮してくれるかなーと期待しましたが再起動もできない。
色々ネットであさりましたが、MySQLコンソールにも入れないので、もうストレージの拡張しかないようです。なのでストレージを「5GB → 6GB」に変更します。「すぐに適用」をチェックして実行。
変更完了すると。ストレージ不足解消。不要な領域も削除しれくれたようです。
MySQLにも接続できるようになりました。
実際の運用ではストレージ不足は発生させてはいけない問題ですよね。普通はアラート入れてるから不足する前にわかりますけど。「Aurora」にしておけばこのような問題も無縁かもしれないので「Aurora」のこと調べて移行していきたいです。
一番やりたかったMySQLアップグレードは次のブログで書きます。
【備忘録】
不要領域などを確認するには。
ネットで探しました、下記でできるみたいです。覚えとこ。
mysql> SELECT -> table_name "Table", -> engine,table_rows "Table Rows", -> ( data_length + index_length ) / 1024 / 1024 / 1024 "Data (GB)", -> ( data_free )/ 1024 / 1024 / 1024 "Free Space (GB)" -> FROM information_schema.TABLES -> WHERE table_schema=database() -> ORDER BY (data_length+index_length) desc limit 10; +-------+--------+------------+----------------+-----------------+ | Table | engine | Table Rows | Data (GB) | Free Space (GB) | +-------+--------+------------+----------------+-----------------+ | test | InnoDB | 3193106 | 0.162353515625 | 0.004882812500 | +-------+--------+------------+----------------+-----------------+