PostgreSQL9.x集簇备份pg_basebackup

    从postgresql 9版本开始增添了pg_basebackup客户端工具程序,它能够用来备份整个数据库集簇,能够用做流复制的基础备份的一个更方便的方式。html

    pg_basebackup语法详见:http://www.postgresql.org/docs/9.4/static/app-pgbasebackup.htmlsql

    pg_basebackup用来给一个运行的PostgreSQL 数据库集簇进行基础备份。进行时不会影响到链接到数据库的客户端,而且同时能够用于时间点恢复 (参阅Section 24.3)和日志传输或流复制备用服务器的起始点 (参阅Section 25.2)。数据库

    pg_basebackup作一个数据库集群文件的二进制拷贝, 同时确保系统自动进出自动备份模式。备份老是使用整个的数据库集群, 不可能只备份单个的数据库或数据库对象。对于单个数据库备份,必须使用如 pg_dump的工具。服务器

    备份时经过一个普通的PostgreSQL链接制做的,而且使用复制协议。 该链接必须由超级用户或一个拥有REPLICATION权限的用户完成 (参阅Section 20.2),而且pg_hba.conf 必须明确容许复制链接。该服务器也必须由max_wal_senders配置, 设置足够高的级别,对于备份至少有一个会话可用。
app

    在同一时刻可能有多个pg_basebackup运行,可是从性能来讲最好只采起一个备份,而后复制结果。
工具

    pg_basebackup不止能够从主机备份还能够从备机备份。要从备机备份, 设置备机以使其能够接受复制链接(也就是,设置max_wal_senders 和 hot_standby,而且配置host-based authentication)。 还须要在主机上启用full_page_writes。
post

    请注意,这里有几个从备机在线备份的限制:
性能

  1.  备份历史文件不是在数据库集群备份时建立的。日志

  2. 不保证全部须要备份的WAL文件在备份的最后归档。若是你计划使用备份做为归档恢复, 并但愿保证此刻全部须要的文件均可以使用,你须要经过使用-x选项将他们包含到备份中。postgresql

  3. 若是备机在在线备份期间被提高为主机,则备份失败。

  4. 全部须要备份的WAL记录必须包含足够的全版书写,这须要你在主机上启用full_page_writes 而且不使用相似pg_compresslog这样的工具做为archive_command 从WAL文件中删除全版书写。

相关文章
相关标签/搜索