pg_basebackup做了什么?

时间:2016-10-04 05:22:30

标签: postgresql data-recovery disaster-recovery

我通过引用https://opensourcedbms.com/dbms/how-to-do-point-in-time-recovery-with-postgresql-9-2-pitr-3/网站执行PITR的一些步骤。

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

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时内部执行的操作?

1 个答案:

答案 0 :(得分:2)

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

pg_basebackup 以二进制格式备份数据(数据集群),以便您可以在以后需要时还原数据库。这与备份单个数据库的pg_dump形成对比,pg_basebackup复制整个PostgreSQL数据集群(所有数据库/表/字段/行/等)。

完整记谱法

<小时/> 那么,Postgres就是一个对象关系数据库管理系统(ORDBMS),它强调可扩展性和标准兼容性。作为数据库服务器,其主要功能是安全地存储数据,并允许在其他软件应用程序的请求下进行检索。它可以处理从小型单机应用程序到具有许多并发用户的大型面向Internet的应用程序的工作负载。&#34; -

  

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

备份&#34; pg_basebackup用于对正在运行的PostgreSQL数据库集群进行基本备份。这些都是在不影响数据库的其他客户端的情况下进行的,并且可以用于点 - 及时恢复(参见第24.3节)以及日志传送或流复制备用服务器的起点(参见第25.2节)。

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

请注意,备用数据库的在线备份存在一些限制:

  • 备份历史记录文件未在支持的数据库集群中创建 起来。
  • 无法保证备份所需的所有WAL文件都是 在备份结束时存档。如果您打算使用备份 用于存档恢复并希望确保所有必需的文件 在那一刻可用,你需要将它们包括在内 使用-x选项进行备份。
  • 如果在线备份期间将备用数据库提升为主数据库,则 备份失败。
  • 备份所需的所有WAL记录必须包含足够的内容 整页写入,要求您启用full_page_writes 主人,而不是像pg_compresslog那样使用工具 archive_command从WAL文件中删除整页写入。 &#34; - 直接来自PostgreSQL documentation