我正在尝试编写一个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这是一个测试数据库,所以停机不是问题。
发布于 2011-10-13 04:24:25
如果您的问题是如何从Python脚本运行命令,您可以使用subprocess.Popen()来运行sudo /etc/init.d/postgresql-x.x stop等外壳命令。
但是,在我看来,你应该使用pg_dump和pg_restore实用程序,它们将以更安全和有效的方式完成工作,并且不需要停止Postgres守护进程。
请看一下PostgreSQL文档中的pg_dump和pg_restore章节。
https://stackoverflow.com/questions/7743948
复制相似问题