pg_rmanによるオンラインバックアップ
| Table of Contents |
はじめに
pg_rmanを利用してPostgreSQL9.1のデータベースをオンラインバックアップします。
pg_rmanについて
pg_rmanはPostgreSQLのオンラインバックアップ/リストアを管理するツールです。
PITRでのバックアップ/リストアの運用がとても便利になるため導入をおすすめします。
postgresqlのインストールについて
postgresqlは下記の通りインストールしています。
PostgreSQL9.1のインストール
プロンプトについて
-
プロンプトによる実行ユーザは以下の通りです。
# ←rootで実行$ ←postgresユーザで実行
インストール環境
-
OS
- CentOS 6.2 (kernel 2.6.32-220.4.2.el6.x86_64)
-
パッケージ
- postgresql91-libs-9.1.2-1PGDG.rhel6.x86_64
- postgresql91-9.1.2-1PGDG.rhel6.x86_64
- postgresql91-server-9.1.2-1PGDG.rhel6.x86_64
pg_rmanインストール/設定
pg_rmanのインストール
ダウンロード
-
pg_rmanを下記サイトからダウンロードします。
インストール
-
pg_rmanをrpmでインストールします。
# rpm -ivh http://pg-rman.googlecode.com/files/pg_rman-1.2.3-1.pg91.rhel6.x86_64.rpm
pg_rmanの設定
-
バックアップカタログの初期化します。バックアップカタログはバックアップファイルや管理情報の保存領域です。
$ pg_rman init -B /var/lib/pgsql/9.1/pg_rman -D /var/lib/pgsql/9.1/dataINFO: ARCLOG_PATH is set to '/var/lib/pgsql/9.1/backups'INFO: SRVLOG_PATH is set to '/var/lib/pgsql/9.1/data/pg_log'
-
pg_rman用の環境変数を追加します。
$ vi ~postgres/.bash_profileexport BACKUP_PATH=/var/lib/pgsql/9.1/pg_rman
-
pg_rman.iniで設定を行います。
$ vi /var/lib/pgsql/9.1/pg_rman/pg_rman.iniARCLOG_PATH='/var/lib/pgsql/9.1/backups'SRVLOG_PATH='/var/lib/pgsql/9.1/data/pg_log'BACKUP_MODE = FCOMPRESS_DATA = YESKEEP_ARCLOG_FILES = 10KEEP_ARCLOG_DAYS = 10KEEP_DATA_GENERATIONS = 3KEEP_DATA_DAYS = 120KEEP_SRVLOG_FILES = 10KEEP_SRVLOG_DAYS = 10
バックアップ
サンプルデータの登録
- 検証用DBを作成して、現在の時間をデータとして登録しておきます。
バックアップ実行
-
バックアップを実行します。この時データベースを停止する必要はありません。
$ pg_rman backup --backup-mode=full --with-serverlog
-
全ての未検証バックアップを検証します。
$ pg_rman validate
- バックアップを確認します。
- 検証用のデータを追加します。
リストア
リストア実行
-
データベースを停止します。(-mでバックエンドを中断させます)
$ pg_ctl stop -m immediate
- リストアを実行します。
-
データベースを起動します。
$ pg_ctl start
- データが復旧していることを確認します。