FAT47の底辺インフラ議事録

学んだことのメモ帳です

【作業メモ】MongoDBのバックアップとリストア(uptime用)

MongoDBのバックアップとリストアをメモメモ

node.js製のレスポンスタイム測定ツール「uptime」をインストール

↑で紹介したuptimeでは計測データをMongoDBに格納しています。データがぶっ飛んだらいやなので日次でバックアップとりたいと思います。

まずはMongoDBのバックアップ

mongodump --db uptime --out /tmp/uptime_bak_120502
    • dbでDB名の指定、--outで出力先のディレクトリ名を指定。日付を入れるようにしておくとたぶんいい。

このコマンドをcronで日次とかでまわしときます。

バックアップが完了したので、試しにuptimeが使ってるuptimeDBをdropしてみました。

mongo
> db.dropDatabase()

ブラウザからダッシュボード開いてみると、

Express
500 Error: failed to load check 4f9602b5a02d51413500008b
at Promise. (/usr/local/uptime/app/dashboard/app.js:77:29)
at Promise. (/usr/local/uptime/node_modules/mongoose/lib/promise.js:120:8)
at Promise. (events.js:67:17)
at Promise.emit (/usr/local/uptime/node_modules/mongoose/lib/promise.js:59:38)
at Promise.complete (/usr/local/uptime/node_modules/mongoose/lib/promise.js:70:20)
at /usr/local/uptime/node_modules/mongoose/lib/query.js:1078:30
at /usr/local/uptime/node_modules/mongoose/lib/utils.js:408:16
at /usr/local/uptime/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection.js:882:5
at /usr/local/uptime/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:131:9
at /usr/local/uptime/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:173:11

でエラー画面が出てきた。

バックデータからDBのリストア

mongorestore --drop /tmp/uptime_bak_120502
    • dropオプションは同名のDBがあった場合先にDropするオプション。

今回は先にDropしちゃったので意味はないが、とりあえずつけてます。

ブラウザからuptimeを確認してみます。


データ復活しました。
上記は17時50分頃にとったバックアップを、18時15分頃にリストアしたのでその間のデータは失われています。