備忘録

備忘録

MariaDBのデータ復旧方法

Ⅰ. はじめに

MariaDBが異常停止して二度と起動しない状態になった場合、原因究明よりもとにかくデータを復旧したい場合のやり方です。

Ⅱ. やり方

1. innodb_force_recovery の値を設定する

1~6まで1ずつ値を起動するまで増やし、MariaDBが起動できるようになるまで試します
/etc/my.cnf.d/server.cnf

[mysqld]
innodb_force_recovery = 1
2. バックアップを取る(mysqldumpする)
# 「テーブル定義」「テーブルデータ」をダンプする
mysqldump -u root -p my_db> my_db.sql

# 「テーブル定義」「テーブルデータ」「イベント」をダンプする
mysqldump -u root -p my_db --events > my_db.sql

# 「テーブル定義」「テーブルデータ」「ストアドプロシージャ」「イベント」をダンプする
mysqldump -u root -p my_db --events --routines> my_db.sql

# 「テーブル定義」「テーブルデータ」「ストアドプロシージャ」「イベント」「トリガー」をダンプする
mysqldump -u root -p my_db --events --routines --triggers > my_db.sql

# 「イベント」だけダンプする
mysqldump -u root -p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --events > my_db_event.sql

# gzipにする
mysqldump ... | gzip > my_db_event.sql.gz
3. 復元する
# gzip -d my_db.sql.gz
mysql -u root -p my_db < my_db.sql

留意点

  • イベントにコメントを記述している場合にmysqlコマンドを利用して復元した時、コメントが消える場合がある