2011-10-12 6 views
0

저는 postgres 데이터베이스의 스냅 샷을 가져 와서 그 스냅 샷을 복원하는 python 스크립트를 작성하려고합니다. pg_dump> data.sql을 작동시키려는 것은 악몽이었고, 나는 당신들을 지나치고 싶다는 생각을하게되었습니다.postgres db의 스냅 샷을 만듭니다

생각은 스냅 샷을이 논리를 따르는 것입니다 : 다운 타임이 문제가되지 않도록

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 - stop the postgres daemon 
2 - copy the {postgres}/data folder out 
3 - start the daemon 

다음 스냅 샷을 복원 할 수 있습니다. 귀하의 질문에 파이썬 스크립트에서 명령을 실행하는 방법 경우

하지만, 내 생각에, 당신은 pg_dumppg_restore 유틸리티를 사용한다

+0

포스트그레스의 내부를 이해하지 못한다면 나쁜 전략으로 보입니다. pg_dump가 존재하기 때문에 존재합니다. 어쩌면 pg_dump를 올바르게 작동시키는 방법을 묻는 것이 좋을까요? – beerbajay

답변

1

, 당신은 그들이 등 sudo /etc/init.d/postgresql-x.x stop과 같은 쉘 명령을 실행할 수 subprocess.Popen()을 사용할 수 있습니다 보다 안전하고 효율적인 방법으로 작업을 수행하며 Postgres 데몬을 중지 할 필요가 없습니다.

PostgreSQL 문서의 pg_dumppg_restore 장을 살펴보십시오.

관련 문제