从postgresql 9版本开始增添了pg_basebackup客户端工具程序,它可以用来备份整个数据库集簇,可以用作流复制的基础备份的一个更方便的方式。
pg_basebackup语法详见:http://www.postgresql.org/docs/9.4/static/app-pgbasebackup.html
pg_basebackup用来给一个运行的Postgresql 数据库集簇进行基础备份。进行时不会影响到连接到数据库的客户端,并且同时可以用于时间点恢复 (参阅Section 24.3)和日志传输或流复制备用服务器的起始点 (参阅Section 25.2)。
pg_basebackup做一个数据库集群文件的二进制拷贝, 同时确保系统自动进出自动备份模式。备份总是使用整个的数据库集群, 不可能只备份单个的数据库或数据库对象。对于单个数据库备份,必须使用如 pg_dump的工具。
备份时通过一个普通的Postgresql连接制作的,并且使用复制协议。 该连接必须由超级用户或一个拥有REPLICATION权限的用户完成 (参阅Section 20.2),并且pg_hba.conf 必须明确允许复制连接。该服务器也必须由max_wal_senders配置, 设置足够高的级别,对于备份至少有一个会话可用。
在同一时刻可能有多个pg_basebackup运行,但是从性能来说最好只采取一个备份,然后复制结果。
pg_basebackup不止可以从主机备份还可以从备机备份。要从备机备份, 设置备机以使其可以接受复制连接(也就是,设置max_wal_senders 和 hot_standby,并且配置host-based authentication)。 还需要在主机上启用full_page_writes。
请注意,这里有几个从备机在线备份的限制: