0

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

我想知道 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什么?

4

1 回答 1

3


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

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


完整的符号


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

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

并且备份“ pg_basebackup 用于对正在运行的 PostgreSQL 数据库集群进行基本备份。这些备份不会影响到数据库的其他客户端,并且可以用于时间点恢复(参见第 24.3 节)和作为开始日志传送或流复制备用服务器的点(参见第 25.2 节)。

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

请注意,从备用数据库进行在线备份有一些限制:

  • 备份的数据库集群中没有创建备份历史文件。
  • 不能保证备份所需的所有 WAL 文件都在备份结束时存档。如果您计划将备份用于存档恢复并希望确保此时所有需要的文件都可用,则需要使用 -x 选项将它们包含在备份中。
  • 如果在线备份时将standby提升为master,则备份失败。
  • 备份所需的所有 WAL 记录必须包含足够的整页写入,这需要您在 master 上启用 full_page_writes,并且不要使用 pg_compresslog 之类的工具作为 archive_command 从 WAL 文件中删除整页写入。" - 直接取自PostgreSQL 文档
于 2016-10-04T06:17:50.617 回答