我有两台机器:
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 作业来导入数据库。
如果遇到困难-请告诉我。