2017-03-24 30 views
0

我創建了這樣的備份:docker exec DOCKER pg_dump -U USER -F t DB | gzip > ./FILE.tar.gz如何在docker中恢復postgres?

假設數據庫在容器中運行,恢復數據庫的最佳方法是什麼?

+0

好吧,你可以在第一次運行時指向一個包含備份的卷,然後調用'pg_restore',但是這並不需要通過docker的方式,所以你可以[遠程](http://stackoverflow.com/a/26378243/1233686) – hurturk

+0

很酷,但據我所知,我的問題是我無法正確解壓縮文件。有任何想法嗎? – user706838

+0

''gunzip hurturk

回答

4

對於您的情況:

docker exec -it <CONTAINER> gunzip < backup.tar.gz | pg_restore -U <USER> -F t -d <DB> 

遠程恢復也可以,如果你的容器是面向公衆和遠程連接被pg_hba.conf允許postresql:

gunzip < backup.tar.gz | pg_restore -U <USER> -F t -d <DB> -h <HOST_IP> -p 5432 

作爲一個經驗法則,它記錄備份和恢復特定於項目的命令是個不錯的主意。