请问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_dump
、pg_dumpall
等)并使用流复制/PITR + pg_basebackup
用于您的物理备份。
关于适用于 Windows 的 PostgreSQL 备份软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977161/