如何使用PHP脚本创建postgres数据库到sql文件的备份?

时间:2009-08-27 14:20:58

标签: php postgresql

我有以下情况。

我有一个PHP脚本,用于导入CSV文件,然后更新postgres数据库

现在我需要在导入发生之前创建数据库的备份

PHP文件在一台服务器上运行,而postgres数据库在另一台服务器上运行

我尝试了exec(pg_dump db_name -CdiOv > /tmp/db_name_backup.sql),但认为这不会起作用,因为db在另一台服务器上。

我不确定如何做到这一点,我可以在PHP执行备份时使用正确的代码但是可以运行年龄。

任何adwise将不胜感激

2 个答案:

答案 0 :(得分:4)

正如depesz所说,您需要使用-h选项来定义远程主机,但它仍会提示输入有问题的密码。尝试:

exec("export PGPASSWORD=mypassword && export PGUSER=myuser && pg_dump -h yourremotehost db_name -CdiOv > /tmp/db_name_backup.sql && unset PGPASSWORD && unset PGUSER");

或者您可以使用〜/ .pgpass文件,但我从未尝试过这个。查看http://www.issociate.de/board/post/43225/pg_dump_+_cronjob.htmlhttp://forum.soft32.com/linux/Backup-Postgressql-ftopict460054.html

答案 1 :(得分:1)

pg_dump可以轻松连接到远程主机 - 只需选中-h选项。

另外 - 你想通过“-CdiOv”实现什么目标?