2016-10-04 59 views
0

我通过参考https://opensourcedbms.com/dbms/how-to-do-point-in-time-recovery-with-postgresql-9-2-pitr-3/网站执行一些步骤来执行PITR。pg_basebackup是做什么的?

我想知道pg_basebackup实际上做了什么?我想知道,Postgres做了什么?有时我会注意到000000010000000000000006.000000D0.backup文件是在pg_xlog目录中创建的。其内容是:

START WAL LOCATION: 0/60000D0 (file 000000010000000000000006) 
STOP WAL LOCATION: 0/60001D8 (file 000000010000000000000006) 
CHECKPOINT LOCATION: 0/6000108 
BACKUP METHOD: pg_start_backup 
BACKUP FROM: master 
START TIME: 2016-10-01 15:10:52 IST 
LABEL: myBaseBackupByPgStartBackup 
STOP TIME: 2016-10-01 15:15:42 IST 

我想知道它的功能以及它内部确实,每当我们执行pg_basebackup

回答

2


TL; DR;
PostgreSQL是一个以标准方式保存信息的数据库。

pg_basebackup以二进制格式备份数据(数据集群),以便您可以稍后在需要时恢复数据库。这与备份单个数据库的pg_dump相反,pg_basebackup复制整个PostgreSQL数据集群(所有数据库/表/字段/行/ ect)。


全部符号


好,Postgres的是” ......一个对象关系型数据库管理系统(ORDBMS)与可扩展性和标准一致性的重视。作为数据库服务器,它的主要功能是安全地存储数据,并允许根据其他软件应用程序的要求进行检索,它可以处理从小型单机应用程序到具有许多并发用户的大型面向互联网的应用程序的工作负载。“ -

https://en.wikipedia.org/wiki/PostgreSQL

而且备份“pg_basebackup用于采取运行PostgreSQL数据库集群的基础备份这些拍摄时不影响其他客户端的数据库,都可以使用用于时间点恢复(参见第24.3节)和作为日志传送或流式复制备用服务器的起点(参见第25.2节)

pg_basebackup使数据库的二进制副本clust er文件,同时确保系统自动进入和退出备份模式。备份总是取自整个数据库集群;无法备份单个数据库或数据库对象。对于单个数据库备份,必须使用诸如pg_dump之类的工具。

注意,有在从待机联机备份一些限制:

  • 备份历史记录文件是不是数据库集群中创建备份 起来。
  • 无法保证备份所需的所有WAL文件在备份结束时归档为 。如果您打算使用备份 进行归档恢复,并且希望确保所有需要的文件 在当时可用,则需要使用-x选项将它们包含到 备份中。
  • 如果在线备份期间将备用服务器升​​级为主服务器,则备份将失败。
  • 备份所需的所有WAL记录必须包含足够的 全页写道,这需要你在 使full_page_writes主人,而不是使用像pg_compresslog一个工具 archive_command删除整版从WAL文件写入。 “ ” - 直接从PostgreSQL documentation