データのバックアップとリストア
Jijiのデータをバックアップ/リストアする手順を解説します。
エージェントのコードやバックテストの結果、通知、ログ、設定情報などすべてのデータは、 MongoDB
に格納されています。
このデータをバックアップすれば、あとで環境を復元できます。
MongoDB
内のデータのうち、利用者のメールアドレス、およびSMTPサーバーのアカウント/パスワードは、暗号化して格納されています。
暗号化には以下のキーを使用しており、この値が変わるとデータを復号できなくなります。
- Herokuの場合、セットアップ時に内部で生成される
SECRET_KEY
変数 - AWS/Dockerの場合、
docker-compose.yml
のUSER_SECRET
変数
別の環境にデータを移した場合など、この値が変わった場合は、リストア後に設定画面から値を再設定する必要がありますのでご注意ください。
mongodump
mongorestore
など MongoDB Tools に含まれるコマンドが必要です。
ご利用の環境に合わせたものを、こちらから事前にインストールしておいてください。
Herokuにインストールしている場合
前準備:
Heroku にインストールした場合、クラウド型のMongoDBサービスの MongoLab
を利用するように設定されています。
最初に、 MongoLab
の管理画面にアクセスし、データベースのホスト名とデータベース名を取得します。
また、バックアップを実行するユーザーも作成します。
-
Heroku にログインして、
Dashboard
からアプリを選択します。 -
Add-ons
のMongoLab
をクリックします。 -
MongoLab
の管理画面が開くので、データベースのホスト名とデータベース名をメモしておきます。 -
次に
Users
タブを選択して、Add database user
からバックアップで使用するユーザーを作成します。
以上で前準備は終わりです。
バックアップ:
以下を実行します。
バックアップの保存先ディレクトリの下にデータベース名でディレクトリが作成され、その中にバックアップデータが出力されます。リストア時には、データベース名のディレクトリを指定します。
リストア:
システムを一旦停止します。
MongoLab
管理画面のCollections
タブから、すべてのコレクションを削除します。
以下を実行してデータベースをリストアします。
システムを再起動します。
新しく構築した環境にデータを移した場合は、メールアドレスとSMTPサーバーの設定を再度行ってください。
AWS,Dockerにインストールしている場合
バックアップ:
jiji_mongodb コンテナが動作している状態で、以下を実行します。
バックアップの保存先ディレクトリの下にデータベース名でディレクトリが作成され、その中にバックアップデータが出力されます。リストア時には、データベース名のディレクトリを指定します。
リストア:
システム全体を一旦停止し、jiji_mongodb
コンテナだけを起動します。
jiji_mongodb
コンテナの jiji
データベースを削除します。
以下を実行してデータベースをリストアします。
システムを再起動します。
新しく構築した環境にデータを移した場合は、メールアドレスとSMTPサーバーの設定を再度行ってください。