微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL9.x集簇备份pg_basebackup

从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。

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

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

  2. 不保证所有需要备份的WAL文件在备份的最后归档。如果你计划使用备份作为归档恢复, 并希望保证此刻所有需要的文件都可以使用,你需要通过使用-x选项将他们包含到备份中。

  3. 如果备机在在线备份期间被提升为主机,则备份失败。

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

原文地址:https://www.jb51.cc/postgresql/195015.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐