dockerでDBサーバーを2つ建ててレプリケーションの設定をしていました。
で、masterからslaveにDBをダンプして移したかったのですが、調べてもなかなかうまくいかなかったので。
1.ダンプする方法
docker exec <db_container_id> mysqldump -u root -p<password> <dbname> > dump.sql
ダンプって失敗しても特に音沙汰なしと言いますか、エラーがでなくて「できた」と思ったら空っぽだったりします。
less dump.sql
これでそれっぽいデータが入っているか確認したらちょっと安心です。
2.リストアする方法
scpでdump.sqlを一方のサーバーから他方のサーバーに移動させました。
で、他方のサーバーにてリストアをします
docker exec -i <container_id> mysql -u root -p<password> <dbname> < dump.sql
障害対応時にもこういうことをやることって沢山ありそうなのでスムーズにできるようになったら焦らずに済むかなと思います。
DBの復旧ってだいぶやばい事故な気がするのでできればやる機会は訪れないでほしいですが。。。
今度レプリケーションや自動フェイルオーバーについても書きたいです。