1. 程式人生 > 其它 >Postgresql之備份軟體

Postgresql之備份軟體

wal-g

  1. ./wal-g backup-push /home/highgo/pgdata/pg_wal/ --config=/home/highgo/wal-g/walg.json

     {
         "AWS_ACCESS_KEY_ID":"AKIAIOSFODNN7EXAMPLE",
         "AWS_SECRET_ACCESS_KEY":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
         "AWS_ENDPOINT":"http://127.0.0.1:9000",
         "AWS_S3_FORCE_PATH_STYLE":"true",
         "WALG_S3_PREFIX":"s3://test/new",
         "PGUSER":"postgres",
         "PGPASSWORD":"123456"
     }
    
  2. SELECT case when pg_is_in_recovery() then '' else (pg_walfile_name_offset(lsn)).file_name end, lsn::text, pg_is_in_recovery() FROM pg_start_backup($1, true, false) lsn

pg_dump

  1. 只能備份單個數據庫,不會匯出角色和表空間相關的資訊
    -F c 備份為二進位制格式 壓縮儲存
    -F p 備份為文字

pg_dump恢復

  1. psql dbname -U username < bakfile
  2. pg_restore pg_restore -d dbname bakfile

pg_dumpall

  1. 使用SQL指令碼進行備份 可以備份角色跟表空間
  2. --globals-only 只備份表空間跟角色 不備份表資料
  3. --roles-only 只備份 角色

pgbasebackUp

  1. 全量備份 備份整個data目錄
  2. -D directory 備份的目錄
  3. -X method 備份的方式
    • fetch(在備份末尾收集事務日誌檔案。)
    • stream(在備份被建立時流傳送事務日誌。)
  4. -P 啟用進度報告
  5. -F 輸出格式
    • p 平面檔案
    • t tar包
  6. 示例:pg_basebackup -D $PGDATA -F p -X stream -v -P -h 192.168.3.201 -p 5431 -U rep

pg_rewind

  1. -D 目錄
  2. --target-pgdata=目錄 該選項指定與源同步的目標資料目錄。
  3. --source-pgdata=目錄指定源伺服器的資料目錄的路徑,以使目標資料目錄與之同步。當—source-pgdata被使用時,源伺服器必須被關閉。
  4. --source-server=連線字串 指定一個libpq連線字串以連線到源PostgreSQL伺服器來使目標同步。伺服器必須開啟並允許,並且不能處於恢復模式。
上述內容如有不正之處,還望不吝指教!
版權宣告:本文為博主原創文章,轉載請註明出處!