Postgres - 将整个数据库的副本从远程服务器拉取到本地开发计算机



一直在试图找到答案,但答案似乎集中在"推动"心态而不是"拉"上。喜欢这个:

将 PostgreSQL 数据库复制到另一台服务器

我有一台本地 VM 开发计算机。雷德哈特·雷赫尔。我还有一个远程环境,我们将其命名为"集成"。我对此环境具有 SSH 访问权限,并且位于远程服务器上的 Sudoers 组中。

我想要的是在我的本地 VM 上有一种方法在集成时拉下数据库的完整副本,并将其推送到等待(空)数据库中。我们称该数据库为"int_backup"。

这不一定是一个命令。乐于编写多个命令。但这里的关键是集成不知道我的本地 VM,也无法访问它。因此,任务必须从 VM 方面完成。

欢迎所有建议。但是在集成上安装软件可能不是一个现实的解决方案。

也许是这样(将公钥安装在遥控器的~postgres/.ssh/authorized_keys文件上):

ssh postgres@yourremotehost 'pg_dump yourdbname | xz -0' |
  xzcat | psql yourdbname

或者,在远程数据库的/etc/sudoers文件中添加一个条目,使用户能够以无密码执行sudo -u postgres pg_dump yourdbname,以便您可以运行:

ssh youruser@yourremotehost 'sudo -u postgres pg_dump yourdbname | xz -0' |
  xzcat | psql yourdbname

在这两种情况下,转储和还原将同时发生,并且不会创建转储文件。

相关内容

  • 没有找到相关文章