pg_dump 数据库名称 -f 输出文件 -i -x -O -R -S 用户名

pg_dump 数据库名称 -f 输出文件 -i -x -O -R -S 用户名

我有两台机器:

  • Remote,Ubuntu 服务器,example.com,数据库:(staging所有者 user2,pass2),用户 1(sudoer)通过 ssh 无密码登录
  • Local,Ubuntu,localhost,数据库:(local所有者 user3,pass3)

问题是:

  • 如何通过一个命令/脚本导入staging数据库的数据和结构local(反之亦然)?
  • 如何设置权限?

这些不是生产数据库,所以我不需要实时同步。我只需要自动执行psql任务(通常通过转到 phppgadmin、将数据导出到文件、通过从文件导入数据来完成psql,所有这些都在Local机器上完成)。

最好的解决方案是数据库所有者/密码独立,因为我还有几对这样的数据库。我在两台机器上都有根访问权限,我可以安装任何其他所需的用户帐户/软件。

答案1

可能很简单,只需编写数据库转储脚本,然后将文件传输到另一个数据库服务器,然后恢复:

数据库管理员可以利用 PostgreSQL 服务器中的“pg_dump”实用程序将数据库转储或备份到文件中。pg_dump 的语法为:

pg_dump 数据库名称 -f 输出文件 -i -x -O -R -S 用户名

我不太喜欢这个剧本http://www.wisdombay.com/articles/pg_dmp.sh 但它应该对你来说就很好了。

我之所以要谨慎,是因为它保存着你的登录名/密码

现在只需 scp 到备份服务器并运行 cron 作业来导入数据库。

如果遇到困难-请告诉我。

相关内容