Help us understand the problem. What is going on with this article?

Mysql の master がログファイルのディスクフルが原因で死んでいた時の対処

More than 3 years have passed since last update.

背景

ほったらかしにしていたログファイルがいつの間にかいっぱいになっていて、ディスクフルにより master の Mysql が死んでいた。slave はディスク容量は余裕があり生きてはいるもののエラーが出ていた。

ログファイルを空っぽに

$ sudo echo -n > ログファイル

Mysql 起動

死んでることを確認して起動

$ sudo service mysqld start

slave の状態を確認

> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: xxx.xxx.xxx.xxx
                (中略)
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event...

Error 1236 でうまくいっていないことがわかる。
バイナリログから master の情報を読む時にエラーが出たよって内容らしい。
今回は master が一晩死んでいたので、バイナリログの情報がずれまくっている。

master のバイナリログを確認

masterで下記を実行して、File と Position を取得

 > show master status;

slave に取得したFile と Position を反映

> stop slave;
Query OK, 0 rows affected (0.02 sec)

> CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx.xxx', MASTER_LOG_FILE='取得したFile名', MASTER_LOG_POS=取得したPosition;
Query OK, 0 rows affected (0.05 sec)

> start slave;
Query OK, 0 rows affected (0.00 sec)

> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: xxx.xxx.xxx.xxx
                (中略)
                Last_IO_Errno: 0
                Last_IO_Error:

master で slave が存在するか確認

> show slave hosts;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
|        18 |      | 3306 |        17 |
+-----------+------+------+-----------+

成功!
次はログローテートかな

shokos@github
Haskell/Java
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away