Postgresで1時間ごとに増分バックアップを行う方法は?


18

単一のPostgresサーバー(Win7 64)の1時間ごとの増分バックアップを試行しています。

私は次のセットアップをしていますpostgresql.conf

max_wal_senders = 2
wal_level       = archive
archive_mode    = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'

(再起動)

で基本バックアップを行いました pg_basebackup -U postgres -D ..\foo -F t -x

フォルダーに大きなbase.tarファイルをfoo作成し、16,384 KBのファイルを追加しました。これはWALであると思われます。

私が理解していないのは、WAL fooが変わらない理由です。data/pg_xlog変更中のWAL 。pgはそれらをコピーすることになっていないのですか?どのように決定するのですか?

おそらく設定する必要がありarchive_timeout=3600ますか?

pg_start_backup()とpg_stop_backup()を呼び出す必要があると言っているサイト(pgのメーリングリスト、baculaのpostgresページ)を見てきましたが、それらは必須ではないと思います。本当?

二次的な質問:

  1. WALはどのくらいの頻度でdata/pg_xlog書かれますか?何が書き込みをトリガーしますか?

    \qpsqlでDMLを実行すると、WALが更新されるようです。または、pgAdminでテーブルを編集してからウィンドウを閉じます。私はそれがコミット時に書き込むだろうと思った。

  2. ベストプラクティス?pg_basebackupは週に1回ですか?WALをPGと同じマシンまたはリモートマシンにアーカイブしますか?

回答:


5

アーカイブフォルダーのリモートストレージへの増分バックアップを行います。

バックアップから復元する必要がある場合、基本的なシナリオは、開始点としてベースバックアップ、および開始点とクラッシュの間に発生したトランザクションアクティビティを再生するためにアーカイブフォルダーの内容全体が必要になることです。

また、アーカイブフォルダ内のファイルが永久に積み重なるのを避けるために、時々新しいベースバックアップを行い、新しいベースバックアップの前にアーカイブされたファイルを削除します。


ありがとう。いくつかの質問:1. pg_start_backup()を実行し、データをコピーしてから、pg_stop_backup()またはpg_start_backup()を実行しますか。pg_stop_backup()、次にコピーしますか?
ニールマクギガン

@Neil:1.および2.を使用するときは適用しないでくださいpg_basebackup。すでにこれは処理されています。3. postgresは、pg_log不要になったWALファイルを自動的に削除します。で手動で何もしないでくださいpg_log。それ以外の場合は、wal_keep_segmentsパラメーターを参照してください
ダニエルヴェリテ2013

「アーカイブ」フォルダーとは、pg_xlogを意味します。
ニール

@NeilMcGuigan:全然違います。アーカイブフォルダーは、アーカイブコマンドの宛先フォルダーです。たとえば、「c:\ postgres \ foo」です。pg_xlogアーカイブフォルダはDBAによって完全に管理されますが、postgresによって完全に自動的に管理されます。
ダニエルベリテ

fooのWALは最初のpg_basebackup後に変更されないため、混乱していると思います
ニール

8

大いに役立つ既存のツール、WAL-Eがあります。それは提供archive_commandしてrestore_commandPITRのためにS3に。

増分または差分の論理バックアップを実行するコマンドはありません。増分または差分を取ることはできません。これを行う唯一の方法は、ログのアーカイブを使用することです。pg_dump

理論的には、新しい完全バックアップを作成し、最後のバックアップとの間にバイナリ差分を作成し、差分をアップロードできます。しかし、これは私が物事を行うための脆弱で非効率的な方法であると思い込み、本当にお勧めしません。

さらに、PgBarmanはフックスクリプトを介したS3との統合をサポートし、バックアップのローテーションと管理の多くを自動化します。繰り返しますが、これはWindowsのオプションではない場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.