Postgresql之备份软件
wal-g
-
./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" }
-
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
- 只能备份单个数据库,不会导出角色和表空间相关的信息
-F c 备份为二进制格式 压缩存储
-F p 备份为文本
pg_dump恢复
- psql dbname -U username < bakfile
- pg_restore pg_restore -d dbname bakfile
pg_dumpall
- 使用SQL脚本进行备份 可以备份角色跟表空间
- --globals-only 只备份表空间跟角色 不备份表数据
- --roles-only 只备份 角色
pgbasebackUp
- 全量备份 备份整个data目录
- -D directory 备份的目录
- -X method 备份的方式
- fetch(在备份末尾收集事务日志文件。)
- stream(在备份被创建时流传送事务日志。)
- -P 启用进度报告
- -F 输出格式
- p 平面文件
- t tar包
- 示例:pg_basebackup -D $PGDATA -F p -X stream -v -P -h 192.168.3.201 -p 5431 -U rep
pg_rewind
- -D 目录
- --target-pgdata=目录 该选项指定与源同步的目标数据目录。
- --source-pgdata=目录指定源服务器的数据目录的路径,以使目标数据目录与之同步。当—source-pgdata被使用时,源服务器必须被关闭。
- --source-server=连接字符串 指定一个libpq连接字符串以连接到源PostgreSQL服务器来使目标同步。服务器必须开启并允许,并且不能处于恢复模式。