PostgreSQLスキルアップノート(自己啓発のための個人サイト)
オフラインバックアップ(正式名:ファイルシステムレベルのバックアップ)
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ オフラインバックアップ(正式名:ファイルシステムレベルのバックアップ)
■■■■
■■■■
■■■■ 2012/10/31
■■■■ 使用環境:PostgreSQL9.1.4 (CentOS6.2)
(C) 2012 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★自己都合により実機確認は9.1、マニュアルへのリンクは9.2としています。ご了承下さい。
■1■ はじめに
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DBを停止した状態での全体の物理バックアップ。
・ファイルシステムレベルのバックアップ→●[マニュアル]
【参考】
正式名「ファイルシステムレベルのバックアップ」はわかりづらいため、以下オフラインバックアップと呼ぶ。
【参考】PostgreSQLのバックアップ方法は以下の3種類
PostgreSQL正式用語 通称
-------------------------------------------------------------------------------------
「SQLによるダンプ」 pg_dump
「ファイルシステムレベルのバックアップ」 コールドバックアップorオフラインバックアップ
「継続的アーカイブ」 他DBMSでいう「オンラインバックアップ」
■2■ オフラインバックアップ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.停止する
──────────────────────────────
【□】 pg_ctl -w stop -m f
2.オフラインバックアップをとる
──────────────────────────────
【□】 env | grep PGDATA
【□】 ls -l $PGDATA
【□】 cd $PGDATA;cd ..;pwd
【□】 tar zcvf coldbackup_`date +"%Y%m%d_%H%M%S"`.tar.gz data/
■3■ オフラインバックアップからのリストア
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.ファイルを配置する
──────────────────────────────
【□】 cp coldbackup_yyyymmdd_hhmmss.tar.gz /home/postgres/
【□】 tar zxvf coldbackup_yyyymmdd_hhmmss.tar.gz data/
2.起動する
──────────────────────────────
【□】 pg_ctl -w start
■4■ その他(マニュアルより)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下は要確認
スナップショットと組み合わせたオンラインバックアップ
オフラインバックアップでオンラインバックアップ
以下を整理したものの、オフラインバックアップは物理バックアップとはいっても
Oracleとは異なりその時点までしか復旧ができない。
あまり使う余地なし?
バックアップ別の復旧可能時点については以下の記事参照
→●[記事]
以下マニュアルより
【要約】
・ファイルシステムのスナップショットの機能とオフラインバックアップを組み合わせて利用できる。
・すべてをWALログも含めて完全に同時に取得すること。
・取得前にCHECKPOINT実行が推奨。
・クラッシュした時と同じような状態のバックアップとなるが起動時にクラッシュリカバリが働くので問題はない。
・ただし、DB全体とWALログ含めて、すべて完全に同時に取得しなければならない。
→●[マニュアル]
-----------------------------------------------------------------------------------------------
その他のファイルシステムバックアップ方法として、ファイルシステムが"整合性を維持したスナップショット"
機能をサポートしている場合(かつ、正しく実装されていると信用する場合)、データディレクトリのスナップ
ショットを作成する方法があります。
典型的な手順では、データベースを含むボリュームの"凍結スナップショット"を作成し、データディレクトリ全
体(上述のように、一部だけではいけません)をスナップショットからバックアップデバイスにコピーし、そし
て、凍結スナップショットを解放します。これはデータベースサーバが稼動中であっても動作します。
しかし、こうして作成されたバックアップは、データベースサーバが適切に停止されなかった状態のデータベー
スファイルを保存します。そのため、このバックアップデータでデータベースサーバを起動する時、直前のサーバ
インスタンスがクラッシュしたものとみなされ、WALログが取り直されます。
これは問題ではありません。単に注意してください
(そして、確実にバックアップにWALファイルを含めてください)。
CHECKPOINTコマンドをスナップショット取得前に発行することでリカバリ時間を減らすこともできます。
-----------------------------------------------------------------------------------------------
対象のデータベースが複数のファイルシステムにまたがって分散している場合、
全てのボリュームに対して完全に同期した凍結スナップショットを得る方法が存在しない可能性があります。
例えば、データファイルとWALログが異なったディスク上にあったり、テーブル空間が異なるファイルシステム
上にある場合、スナップショットは同時でなければなりませんので、スナップショットのバックアップを使用
できない可能性があります。
こうした状況では、整合性を維持したスナップショット技術を信用する前に使用するファイルシステムの文書
を熟読してください。
-----------------------------------------------------------------------------------------------
参考 スナップショット (より適切なものがあれば差し替え)
→●[記事]
→●[記事]
以上