コラボフローパッケージ版(PostgreSQL)のデータベースを定期バックアップするための方法について記載します。 バックアップにはPostgreSQLに付属のpg_dumpコマンドとWindows タスク スケジューラを利用します。
パスワードファイルを用意
pg_dumpコマンドでパスワードを入力せずに実行するためにパスワードファイルを作成します。
- DBサーバーにAdministratorユーザーでログインします。
- エクスプローラーで、隠しファイルを表示する設定にします。
- 以下のファイルをメモ帳で開きます。
C:\Users\Administrator\AppData\Roaming\postgresql\pgpass.conf- postgresqlフォルダが無い場合は作成し、ファイルも無い場合は新規作成します。
- ファイル内の書式は「ホスト名:ポート番号:データベース:PostgreSQLユーザー名:パスワード」です。
データベース部分は任意「*」を指定し、他の部分はセットアップした環境に応じて適宜指定して保存します。
例:localhost:5432:*:postgres:password
バックアップ用バッチファイルの作成
データベースバックアップを行うバッチファイルを作成します。
- DBサーバーにAdministratorユーザーでログインします。
- バックアップ保存用に
C:\Backup
フォルダを作成します。 - メモ帳を起動します。
- 以下の内容をコピーして貼り付け、C:\Backupフォルダ内に
collaboflow_backup.bat
というファイル名で保存します。
@echo off
setlocal
rem --- バックアップ対象のデータベース
set BACKUP_DATABASE=udb_collaboflow
rem --- バックアップ保存日数
set BACKUP_DAYS=30
rem --- バックアップ先フォルダ
set BACKUP_DIR=C:\Backup
rem --- PostgreSQLインストール先フォルダ
set PGHOME=C:\Program Files\PostgreSQL\10
rem --- バックアップファイル名を日時「YYYYMMDD-HHMMS」付きで作る
set BACKUP_DATETIME=%DATE:/=%-%TIME::=%
set BACKUP_DATETIME=%BACKUP_DATETIME:~0,15%
set BACKUP_FILE=%BACKUP_DIR%\collaboflow-%BACKUP_DATETIME%.backup
rem --- バックアップ実行 ---
echo バックアップ
"%PGHOME%\bin\pg_dump.exe" -h localhost -p 5432 -U postgres -w -Fc -v -f "%BACKUP_FILE%" "%BACKUP_DATABASE%"
rem ※失敗したらここで終了
if ERRORLEVEL 1 exit /b %ERRORLEVEL%
rem --- 世帯管理:古いファイルを削除
echo 古いファイルを削除
forfiles /p "%BACKUP_DIR%" /m "collaboflow-*.backup" /d -%BACKUP_DAYS% /c "cmd /c del @path" 2>nul
rem 成功終了
exit /b 0
※注釈の内容を参考に環境にあわせて適宜変更します。
- バックアップ対象のデータベース:
udb_collaboflow
- バックアップファイル保存日数:
30
- バックアップ先フォルダ:
C:\Backup
- PostgreSQLのインストール先:
C:\Program Files\PostgreSQL\10
テスト実行
保存したバッチファイル collaboflow_backup.bat
をダブルクリックして実行します。
バックアップ先フォルダにバックアップファイル「collaboflow-日時.backup」ファイルが作成されているか確認します。
定期バックアップの設定
Windowsの「タスクスケジューラ」機能を利用して、バッチファイルを定期実行するように設定します。
- DBサーバーにAdministratorユーザーでログインします。
- スタート > Windows管理ツール > タスク スケジューラを開きます。
- 操作 > 基本タスクの作成を開きます。
- タスクの名前を入力して「次へ」をクリックします。
- トリガーに毎日を選択して「次へ」をクリックします。
- タスクの開始時刻と間隔を入力して「次へ」をクリックします。
- プログラムの開始を選択して「次へ」をクリックします。
- プログラム/スクリプトの「参照」からバッチファイルを選択して「次へ」をクリックします。
- "[完了]をクリックしたときに、このタスクの[プロパティ]ダイアログを開く"にチェックを入れて「完了」をクリックします。
- "ユーザーがログオンしているかどうかにかかわらず実行する"を選択して「OK」をクリックします。
- タスク実行ユーザーのアカウント情報を入力して「OK」をクリックします。
- 設定が完了したらタスクを実行し、バックアップファイルが作成されている事を確認します。
復元テスト
バックアップファイルを使用し、データベースを復元できる事を確認しておきます。
復元方法は別記事「コラボフローパッケージ版(PostgreSQL)のデータベースバックアップ・復元方法」に手順を記載していますので、参照ください。
参考
- コラボフローパッケージ版(PostgreSQL)のデータベースバックアップ・復元方法
- [PostgreSQL Wiki] Windows上でのバックアップの自動化
- PostgreSQL文書 pg_dump
この技術文書について
本記事はお客様の利便性向上のため参考情報として設定例やサンプルを掲載しております。その内容について何ら保証するものではなく、サポート窓口では設定例やサンプルについて回答いたしかねます。
また、掲載されている内容は記事公開時点のソフトウェア・資料をもとに作成された内容となりますので、ソフトウェアのバージョンなどにより使用方法が変わる場合があります。お客様の責任においてご利用いただき、実際の運用にあたっては十分な検証をしていただきますようお願い致します。
※pg_dumpコマンドは、PostgreSQL文書やコミュニティをご活用ください。
※Windows タスク スケジューラに関するお問い合わせは、マイクロソフト社へお問い合わせください。
コメント
0件のコメント
記事コメントは受け付けていません。