MongoDB

UCIDM はデータをエントリーや設定などのデータを MongoDB で管理しています。

MongoDB 間のデータ移行

物理サーバーのリプレースなど、既存の UCIDM 環境から別のサーバーマシンへ移行しなければならないときに MongoDB のデータのみを移行します。デプロイ済みの MongoDB コンテナにデータ移行のためのツールが同梱されているのでそれらを使います。

バックアップ/ダンプ

mongodump コマンドを使って1つのバイナリのダンプファイルを生成します。環境変数のユーザー名とパスワードは適宜、設定した値を指定してください。デフォルトでは ucidm というデータベースを使っています。ダンプは相対的に速く完了します。定期的に実行してフルバックアップとして保管することもできます。

$ cd /opt/osstech/var/lib/ucidm
$ docker compose exec mongo \
    mongodump --authenticationDatabase admin \
              --uri "mongodb://${USERNAME}:${PASSWORD}@localhost:27017" \
              --db ucidm --archive > $(date +%Y%m%d)-mongodb.dump
$ ls
20231002-mongodb.dump  ...

リストア/インポート

mongorestore コマンドを使って mongodump で取得したダンプファイルからデータベースを復元します。ここではデータベースの名前が ucidm であるという前提で実行しています。リストアはダンプと比較して、相対的に多くの時間がかかります。

$ docker exec --interactive mongo \
    mongorestore --authenticationDatabase admin \
                 --uri "mongodb://${USERNAME}:${PASSWORD}@localhost:27017" \
                 --nsInclude "ucidm.*" --archive < ./20231002-mongodb.dump