バックアップ手順
1. 目的
FRUCtoS配布パッケージにより構成されるFRUCtoSのDBのバックアップ方法について説明します。
本ドキュメントはソフトウェアのインストール、OSの環境設定など基本的なコンピュータ管理の知識とその操作権限をもつ方を対象としています。
また、本書ではDockerを用いた手順とPostgreSQLを用いた手順を解説しているため、DockerとPostgreSQLの基本的な知識があるとより望ましいです。
例としてDockerを実行環境とする場合を記載しています。 他のDocker互換のコンテナ実行環境をお使いの方は、適宜読み替えてください。 設定ファイルも適宜書き換えてください。
2. DBバックアップの全体像
FRUCtoSで用いているDBは現在以下の3種類があり、それぞれ必要に応じてバックアップを取ることが推奨されます。
fructos_docker_database
(FRUCtoS用のDB)fructos_docker_audit_database
(FRUCtoSの監査ログ用のDB)fructos_docker_configuration_database
(FRUCtoSの設定永続化用のDB)
DBのバックアップ方法はいくつかありますが、ここではFRUCtoSの標準で用いているDB管理システム、PostgreSQLの機能を用いた方法について、 2種類のバックアップの概要と手順を示します。PostgreSQLと異なるDB管理システムを用いている場合は、そのシステムに応じたバックアップ方法を検討ください。
2.1. 論理バックアップ
論理バックアップはある時点でのDBのデータをバックアップファイルにバックアップします。作成されたバックアップファイルは、バックアップを行った時 点にのみリストアが可能です。
論理バックアップの概念図
2.2. 物理バックアップ
物理バックアップはある時点でのDBのデータをベースバックアップファイルにバックアップし、また、データベースの変更ログを実際の処理に先行して継続的にWALファイルに書き出します。
ベースバックアップファイル作成時点以降かつWALファイルが存在する範囲内の任意の時点にリストアが可能です。
物理バックアップの利点は継続的にWALファイルが書き出されることです。DBがクラッシュした場合でも、先に書き出されたWALファイルとベースバックアップファイルを用いてリストアできます。
半面で、WALファイルが書き出し続けられるために、バックアップのファイル容量が増えていきます。
ファイル容量を抑えるために、定期的にベースバックアップファイルを作り直し、そのベースバックアップファイル作成以前のWALファイルを削除することが推奨されます。
物理バックアップの概念 図
2.3. バックアップの違いの概要
論理バックアップと物理バックアップの違いについて、その概要を以下表に示します。
論理バックアップ | 物理バックアップ | |
---|---|---|
バックアップファイル | 1つ(バックアップファイル) | 2つ以上(ベースバックアップファイル、 ベースバックアップ以降のWALファイル) |
リストア先 | バックアップ時点のみ | ベースバックアップ以降のWALファイル存在範囲内で任意 |
起動中のバックアップ | 可能 | 部分的に可能(WALファイル出力設定変更の反映には停止が必要) |
DBシステムクラッシュ時 | クラッシュ時の動作はなし(バックアップ時点への復元は可能) | クラッシュ時の操作まで復元が可能 |