【发布时间】:2012-08-03 14:30:30
【问题描述】:
我想在从我的部署服务器(不是数据库服务器)运行数据库迁移之前和之后备份我的生产数据库,我在 CentOS 5 机器上安装了一个 Postgresql 8.4 服务器。访问数据库的网站位于运行 MVC.Net 应用程序的 Windows 2008 服务器上,它检查源代码中的更改,编译项目,运行任何 DB 更改,然后部署到 IIS。
我已将数据库服务器设置为为日常备份执行 crontab 作业备份,但我还想要一种在部署过程中从部署服务器调用备份的方法。据我所知,没有办法告诉数据库从客户端连接来备份自己。如果我从 Web 服务器调用 pg_dump 作为部署脚本的一部分,它将在 Web 服务器上创建备份(不可取)。我查看了 COPY 命令,它可能不会给我想要的东西。 MS SQLServer 允许您从数据库连接中调用 BACKUP 命令,这会将备份放在数据库机器上。
我发现这篇关于 MySQL 的帖子,它不是 MySQL 中支持的功能。 Postgres是一样的吗? Remote backup of MySQL database
实现这一目标的最佳方法是什么?我想过创建一个与 DB 服务器建立 SSH 连接的小型应用程序,然后调用 pg_dump?这意味着我将 SSH 连接信息存储在服务器上,如果可能的话,我真的不想这样做。
【问题讨论】:
-
你的问题很混乱。您想在 Windows 服务器
W上运行一个脚本来创建在 CentOS 服务器C上运行的数据库的备份,该备份将存储在服务器C上,对吧? -
@Tometzky,是的,我在
W上有一个 C# 脚本,它运行到网站的部署。作为部署的一部分,它连接到数据库C并在数据库结构或数据需要更改以匹配新部署(迁移)时运行数据库脚本。作为此部署脚本的一部分,我想在数据库更改之前和之后强制将数据库的备份存储在C。
标签: postgresql database-backups remote-backup