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服务器来使目标同步。服务器必须开启并允许,并且不能处于恢复模式。
posted @ 2021-08-07 12:23  meetzy  阅读(104)  评论(0编辑  收藏  举报