Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
PostgreSQLは人気のオープンソースオブジェクトリレーショナルデータベース管理システム(RDBMS)です。PostgreSQLを活用する企業にとって、堅牢なバックアップ施策は、人為的ミス、システム障害、ランサムウェア攻撃からデータを守り、コンプライアンスを順守するために不可欠です。
本ガイドでは、PostgreSQLのバックアップとリストアに活用できる信頼性の高い6つの手法を解説します。コマンドライン、pgAdmin 4のGUI、簡易ダンプ、Cronによる自動実行、企業向けバックアップソリューションi2Backupを紹介します。
コマンドライン(CLI)はPostgreSQLバックアップの代表的な手法です。バックアップ作成には標準ツールのpg_dump、データ復旧にはpsqlまたはpg_restoreを使用します。この手法は特定テーブルのみのバックアップに対応し、スクリプトに記述して定期実行することが可能です。ただし、ポイントインタイムリカバリには対応していません。
詳細な手順は下記の通りです。
手順1. PostgreSQLのbinフォルダに移動します。既定のパスは C:\Program Files\PostgreSQL\16\ となります。
手順2. binフォルダを右クリックし、「ターミナルで開く」を選択します。
手順3. 単一データベースの標準バックアップを作成する場合は、下記構文を使用します。
pg_dump -U [ユーザー名] -W -F t [データベース名] > c:\[バックアップ保存先]
手順4. パスワード入力を求められるので、パスワードを入力しEnterキーを押下します。バックアップ完了後、保存先フォルダにファイルが作成されているか確認します。
補足:
1. PostgreSQL全体をバックアップする場合は./pg_dumpall、スキーマのみをバックアップする場合も./pg_dumpallを使用します。
2. Docker環境でPostgreSQLをバックアップする手順:
3. AWS S3へPostgreSQLをバックアップする場合はAWS CLIを設定します。
PostgreSQLのリストアには下記スクリプトを利用します。
1. テキスト形式(.sql)ファイルのリストア
psql -U [ユーザー名] -d [リストア先DB名] < [バックアップファイル].sql
2. カスタム圧縮形式(.dump)ファイルのリストア
-Fcオプションでバックアップを作成した場合に使用します。
pg_restore -U [ユーザー名] -d [リストア先DB名] [バックアップファイル].dump
pgAdmin 4は視覚的にバックアップを実行できる強力なGUIツールです。単発のバックアップ、初心者、対象オブジェクトを画面上で選択したい開発者に適しています。一方、自動化の設定が難しく、超大規模データベースの処理速度は低速になります。
手順は下記の通りです。
手順1. pgAdminを起動し、サーバーツリーを展開し、バックアップ対象のデータベースを選択します。
手順2. データベース名を右クリックし、「Backup…」を選択します。
手順3. 各種設定を構成します。
手順4. オプションタブにて、完全バックアップが不要な場合は「データのみ」または「スキーマのみ」を選択可能です。
手順5. Backupをクリックし実行します。右下のプロセス画面から進捗を確認できます。 
pgAdmin4からのリストア手順は以下の通りです。
手順1. 空のリストア先データベースを新規作成
手順2. 対象データベースを右クリックし「Restore…」を選択
手順3. ファイルを指定
手順4. オプションタブにおいて、既存オブジェクトを削除してから再作成する場合は「リストア前にクリーン」を有効にします。
手順5. 「Restore」をクリック。処理完了後に通知が表示されます。
DBeaverはほとんどすべてのデータベースエンジンに対応する汎用ツールとして開発者に人気があります。「簡易ダンプ」のための洗練されたUIを備えていますが、内部の処理にはローカルにインストールされたPostgreSQLツールを利用します。
DBeaverは直感的な画面を備え、簡易なデータ出力に適しています。ただし定期的な保護運用には不向きで、Java製のため動作が重いという特徴があります。
事前設定完了後、下記手順を実施します。
手順1. データベース名を右クリックし「ツール」→「Backup」を選択
手順2. バックアップ対象のスキーマまたはテーブルを選択
手順3. 出力形式を選択(PlainまたはCustom)
手順4. 保存先(ローカルディスクまたは外部ドライブ)を指定し「開始」をクリック
単発作業であれば手動バックアップでも問題ありませんが、本番データベースには自動実行が不可欠です。Linux・macOS環境で定期バックアップを実行する代表的な手段がCronジョブです。ただしCronに慣れていない場合、運用の難易度が高くなります。
Cronジョブはバックグラウンドで実行されるため、実行中に手動でパスワードを入力できません。運用で利用可能な2つの方法は下記です。
crontabに長いコマンドを直接記載するより、bashスクリプト(backup_db.sh)を作成する方法が推奨されます。ファイル名への日時付与、古いバックアップ自動削除などの機能を追加しやすくなります。
#!/bin/bash
# 設定項目
DB_NAME="my_database"
BACKUP_DIR="/home/user/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
# 圧縮形式でバックアップ作成
export PGPASSWORD='自身のパスワード'
pg_dump -U postgres -d $DB_NAME | gzip > $BACKUP_DIR/db_backup_$DATE.sql.gz
# オプション:30日以上古いバックアップを自動削除し容量を節約
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +30 -delete
Crontabに実行スケジュールを定義します。
手順1. エディタ起動:crontab -e
手順2. ファイル下部にスケジュール行を追加。例:毎日午前2時に実行する場合
00 02 * * * /home/user/scripts/backup_db.sh >> /home/user/logs/backup.log 2>&1
Cronスケジュール解説:
単純な小規模プロジェクトではスクリプトやオープンソースGUIでも対応可能ですが、膨大なデータを扱い、稼働要件の厳しい企業環境には、人手による運用を抑えた堅牢なソリューションが必要となります。
データ損失や手動設定ミスを許容できない組織には、Info2softのi2Backupが最適です。重要なPostgreSQLデータベースの定期バックアップを簡単に構築でき、ローカルディスク、外付けストレージ、ZFS、NAS、重複排除ストレージ、AWS S3など複数の保存先に対応しています。
PostgreSQL向けi2Backupの主な特長:
比較:i2Backupと手動運用方式
| 機能項目 | 手動スクリプト(Cron/CLI) | i2Backup(企業向け) |
|---|---|---|
| 環境構築 | サーバーごとに手間のかかる設定が必要 | ポリシーベースで迅速に導入可能 |
| データ転送 | フルダンプのみの運用が中心 | 真の増分バックアップに対応 |
| 監視 | ログを手動で確認 | 自動アラート・レポート機能搭載 |
| 拡張性 | 規模が大きくなると管理が困難 | 増加するインフラに対応可能 |
i2BackupによるPostgreSQLバックアップ手順
手順1. i2Backupの60日間無料トライアルを申し込み、Info2soft技術者と連携し環境へ導入します。
手順2. 管理画面にて「バックアップ&リストア」>「アプリ保護」>「バックアップルール」を開き「新規」をクリック。
手順3. 基本設定画面にタスク名称を入力し、ルール種別に「PostgreSQL」を選択。必要項目を設定し「次へ」をクリック。
手順4. バックアップクライアントを選択し、保存先ストレージをバックアップ先に指定、「次へ」。
手順5. バックアップ対象・パラメータ画面にてインスタンスを選択。バックアップスケジュール画面でバックアップ種別と世代保持ルールを設定。
手順6. 必要に応じて詳細設定にて圧縮・暗号化ルールを設定後、「確定・タスク登録」を実行。
PostgreSQLバックアップの最適な手法は、環境とデータの重要度によって異なります。開発環境や小規模プロジェクトでは、標準コマンドやpgAdminなどのGUIツールを活用することで、費用をかけず手動スナップショットや簡易的な自動運用が実現できます。開発環境や小規模な本番業務に柔軟に対応可能です。
一方、データ量が増大するにつれ、手動スクリプトは障害の検知が難しく、ストレージ負荷が大きくなる課題が生まれます。基幹システムではInfo2softのi2Backupといった企業向けソリューションが最も効率的な選択肢となります。手動運用では実現困難な自動化、増分バックアップ、拡張性の高い保護機能を提供します。i2BackupはPostgreSQL以外にも、SQL Serverデータバックアップなど多数のプラットフォームに対応しています。