本文主要介绍pg_dump、pg_dumpall、copy、pg_basebackup的使用。
一. pg_basebackup1. pg_basebackup的原理简介pg_basebackup ------ 获得postgresql集簇的一个基础备份。
pg_basebackup是集合API函数pg_start_backup和 pg_stop_backup,在9.1版本之前的物理备份可以通过pg_start_backup和pg_stop_backup函数来进行实现备份,对于pg_basebackup来说步骤较多,注意的事项也比较多(比如复制槽、表空间等问题)。
备份通过一个使用复制协议常规PostgreSQL连接制作。该连接必须由一个具有REPLICATION权限或者具有超级用户权限的用户ID建立,并且pg_hba.conf必须允许该复制连接。
该服务器还必须被配置,使max_wal_senders设置得足够高以提供至少一个walsender用于备份以及一个WAL流(如果使用流)。
2.pg_basebackup的参数介绍pg_basebackup [option…]
- -h:host ( --host=host ) 指定运行服务器的机器的主机名。
- -U:username ( --username=username) 指定连接的用户名。
- -r:rate ( --max-rate=rate ) 设置从源服务器收集数据的最大传输速率(10M 表示速率:10MB/s)。
- -F:format (–format=format) 为输出选择格式。p/t -Ft -z。
- -P:(–progress) 启用进度报告。
- -R:( --write-recovery-conf ) 创建一个standby.signal文件,并将连接设置附加到目标目录(或使用tar格式的基本存档文件中)的postgresql.auto.conf文件中。
- -c:fast|spread ( --checkpoint=fast|spread ) 将检查点模式设置为 fast(立刻)或 spread(默认)。
- -D:directory (–pgdata=directory) 设置目标目录以将输出写入。
- -tablespace-mapping:表空间。
举例1:
pg_basebackup -h192.168.254.128 -p5432 -Urepli -r 100M -Fp -P -R --verbose -c fast -D /home/postgres/basebackup
/
(建议如果是制作从库,并且打算加上复制槽,可以加上参数-C --slot=slotname。)
举例2:
pg_basebackup -h192.168.254.128 -p5432 -Urepli -r 100M -Ft -P --verbose -R -c fast -D /home/postgres/basebackup
/