【作業メモ】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しちゃったので意味はないが、とりあえずつけてます。
ブラウザからuptimeを確認してみます。
データ復活しました。
上記は17時50分頃にとったバックアップを、18時15分頃にリストアしたのでその間のデータは失われています。