适用于 Windows 的 PostgreSQL 备份软件

标签 postgresql backup database-backups

请问Windows下有没有可以安排PostgreSQL定时备份的软件。

我们在不同位置维护多台服务器,所以我想知道是否有任何简单的方法可以远程安排 PostgreSQL 数据库备份,因为数据库加载时有一定的高峰时间,我想将其安排在以免发生麻烦。

最佳答案

像 Areca Backup、Bacula(如果你有 Linux 服务器用于备份存储)这样的工具,或者 50 万个商业备份“解决方案”几乎都可以用来备份 PostgreSQL。

逻辑备份

让现有的备份管理产品负责保留、轮换和调度。您应该做的是提供一个预备份脚本以插入您的备份产品。该脚本将运行 pg_dumpall --globals-only ,并为每个数据库运行 pg_dump -Fc ... ,以将数据库内容保存到转储目录。这是通常的过程 shown in the regular backup/restore docs 。然后支持这一点。在备份后脚本中,删除转储输出,因为它现在将存档在备份管理工具的存档中。

我从未见过一个备份管理产品有前置和后置 Hook 。

物理备份

您可以对物理备份使用类似的策略,而不仅仅是上面的逻辑备份。一般过程再次记录在regular backup/restore docs中。 。将其集成到备份管理器中会很复杂,因为需要复制 pg_stop_backup() 之后生成的 WAL。像这样的事情:

  • 确保 WAL 存档已启用,并且存档目录可从运行备份的主机读取。
  • 在预备份 Hook 中,连接到数据库并运行 pg_start_backup()
  • 让备份产品(必须支持卷影复制服务复制)复制数据目录,包括 pg_xlog、所有表空间等。
  • 在备份后 Hook 中,运行 pg_stop_backup()
  • 定义在主数据库备份之后运行的另一个备份文件集。该文件集必须将所有存档的 WAL 备份到备份标签中的位置。如果不这样做将导致您无法恢复备份。

如果物理备份看起来太复杂,请坚持使用逻辑备份转储(pg_dumppg_dumpall 等)并使用流复制/PITR + pg_basebackup 用于您的物理备份。

关于适用于 Windows 的 PostgreSQL 备份软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977161/

相关文章:

php - 使用 Drupal 恢复备份站点

azure - 备份 Microsoft Azure 虚拟机

mysql - 如何使用终端进行 MySQL 备份和恢复?

oracle - 备份 COPY 与 BACKUPSET

linux - 从 pg_basebackup 恢复

c++ - 如何使用 C++ libpqxx API 将二进制数据插入到 PostgreSQL BYTEA 列中?

ruby-on-rails - 在 Rails 中使用 add_reference 时如何使用 bigint 类型?

postgresql - 如何让 pcp 自动将节点附加到 postgres pgpool?

mysql - 如何在 Windows Vista 上备份我的 MySQL 数据库?

shell - 批量导出多个mysql数据库