Docker 運用時の操作
概要
TimeTracker NX をDocker上で運用する時のデータベース管理方法を紹介します。
具体的には以下を実施する際の手順です。
本ページは Linux環境で構築した Docker の手順をご紹介します。
バックアップ
サーバーマシンの障害やトラブルに備え、データベース上のデータを定期的にバックアップしてください。
バックアップされたデータがあれば、仮にサーバーマシンの障害が発生してデータが失われても、
バックアップした時点のデータに戻すことができます。
手順をご紹介します。
-
次のリンクの手順でTimeTracker NX を停止します。
「システムを安全に停止する」上記手順を踏まないとデータベースの不整合が取れなくなる可能性があります。 -
compose.yml
を配置したディレクトリに移動し、アプリコンテナとnginxコンテナを停止します。sudo docker compose stop web nginx
-
DBバックアップファイルを取得します。
利用されている DB管理ソフトあわせて、以下のコマンドを実行してください。-
SQL Server の場 合
sudo docker compose exec db /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P <your password> -No -Q "BACKUP DATABASE TimeTrackerNX TO DISK = N'/var/tmp/timetrackernx.bak'"
「<your password>」を変更して実行してください。
-
PostgreSQL の場合
sudo docker compose exec db pg_dump -U postgres timetrackernx > /var/tmp/timetrackernx.bak
詳しくは、各ツールの公式ドキュメントを参照ください。 -
-
(SQL Serverの場合) 取得したDBバックアップファイルをローカルのカレントディレクトリにコピーします。
以下のようにコピー元/コピー先を指定してください。sudo docker compose cp db:/var/tmp/timetrackernx.bak ./timetrackernx.bak
-
アプリコンテナとnginxコンテナを起動します。
sudo docker compose start web nginx
コンテナを起動すれば TimeTracker NX も起動します。
復元
以下の問題が発生した場合、バックアップしたファイルを復元することで、
バックアップした時点のデータの状態に戻すことができます。
- データベースに障害が発生した
- 重要なデータを間違って削除してしまった