制作postgres db的快照

时间:2011-10-12 17:18:55

标签: python postgresql

我试图编写一个python脚本,它捕获postgres数据库的快照并恢复这些快照。试图获得pg_dump> data.sql工作一直是个噩梦,我遇到了一个想要超越你们的想法。

我们的想法是遵循这个逻辑来拍摄快照:

1 - stop the postgres daemon
2 - copy the {postgres}/data folder out
3 - start the daemon

然后恢复快照:

1 - stop the postgres daemon
2 - delete the {postgres}/data folder
3 - copy the snapshot data folder in place
4 - reset the permissions of the data folder to the postgres user
5 - start the daemon

这是一个测试数据库,因此停机不是问题。

1 个答案:

答案 0 :(得分:1)

如果您的问题是如何从Python脚本运行命令,则可以使用subprocess.Popen()运行shell命令,例如sudo /etc/init.d/postgresql-x.x stop等。

但是,在我看来,您应该使用pg_dumppg_restore实用程序,他们将以更安全有效的方式完成工作,而不需要停止Postgres守护程序。 / p>

查看PostgreSQL文档中的pg_dumppg_restore章节。