我想在从我的部署服务器(不是数据库服务器)运行数据库迁移之前和之后备份我的生产数据库,我在 CentOS 5 机器上安装了一个 Postgresql 8.4 服务器。访问数据库的网站位于运行 MVC.Net 应用程序的 Windows 2008 服务器上,它检查源代码中的更改、编译项目、运行任何 DB 更改,然后部署到 IIS。
我已将数据库服务器设置为为日常备份执行 crontab 作业备份,但我还想要一种在部署过程中从部署服务器调用备份的方法。据我所知,没有办法告诉数据库从客户端连接来备份自己。如果我从 Web 服务器调用 pg_dump 作为部署脚本的一部分,它将在 Web 服务器上创建备份(不可取)。我查看了 COPY 命令,它可能不会给我想要的东西。MS SQLServer 允许您从数据库连接中调用 BACKUP 命令,这会将备份放在数据库机器上。
我发现这篇关于 MySQL 的帖子,它不是 MySQL 中支持的功能。Postgres是一样的吗? MySQL数据库的远程备份
实现这一目标的最佳方法是什么?我想过创建一个与 DB 服务器建立 SSH 连接的小型应用程序,然后调用 pg_dump?这意味着我将 SSH 连接信息存储在服务器上,如果可能的话,我真的不想这样做。