mysql 超重いgroongaバックアップ復元

2014年11月6日更新 view: 251 view
photoBy: http://www.windarooci.com/assets/service/image_ur…

まずは、バックアップの構造

スポンサードリンク

DBまるごとのバックアップを取得した dump.sql を用意。

条件

DB数 6 (1つのDBのみ完全復元。他5つはDBに残っている。)

テーブル数 20

レコード数 2,885,832 InnoDB utf8_general_ci 69.6 MiB

復元まで 20分かかりませんでした。

mysqld の設定

/etc/my.cnf

[mysqld]
skip_innodb_doublewrite
innodb_flush_log_at_trx_commit=0

[mysqld_safe]
log-error=/var/log/mysqld.log
log_warnings=1
  • 上二行DBインサートを音速にする設定
  • 一般的なログも取得インサートログとか。デバッグようなので、終わったら削除する
  • log_warnings 強制終了した場合のログを取得

起動しない場合は
http://stdpg.blog.shinobi.jp/mysql/my.cnf%E3%82%92%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%81%A6%E3%80%81mysql%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%B5%B7%E5%8B%95%E4%B8%8D%E8%83%BD%E3%81%AB%E3%80%82%E3%81%9D%E3%81%93%E3%81%8B%E3%82%89%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B%E3%81%BE%E3%81%A7

バックアップを戻す

まずは戻したいDBを全削除しておく。

削除できない場合は?

直接フォルダ毎削除してやります。

rm -rf /var/lib/mysql/table_name.mrn/
rm -rf /var/lib/mysql/table_name/

linuxのコマンドラインから

mysql < dump.sql

たったこれだけ。

ERROR 1046 (3D000) at line 22: No database selected
[root@sub0000528169 tmp2]# mysql -u root -p test_matomater < matomater.sql

上記のエラーが出たら、データベース名 test_matomater を指定してSQLを実行。

エラー時の対応

ERROR 1005 (HY000) at line 1165: syscall error 'qjiin.mrn.0000100' (File exists)

ファイルを検索

mroongaの一時ファイルか何か。。

find /var/lib/mysql/ -name *.mrn.* -ls

全て削除して問題ないファイルだったら削除しちゃえ

find /var/lib/mysql/ -name *.mrn.* -delete

ただしフォルダは削除できなので、フォルダは rm-rf を使って削除すること。

再起動して、バックアップを戻すへ

たったこれだけのことなのに、焦るとミスるので、注意

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

10月17日 ( 火 ) にアクセスが多かった記事はこちら!