我使用EMS SQL管理器的PostgreSQL和我需要轉儲困難的數據庫(域,300 +存儲過程/函數,觸發器,數據等)。 此工具無法執行此操作。PostgreSQL:轉儲和恢復
請指教我一個很好的postgres GUI工具。
我使用EMS SQL管理器的PostgreSQL和我需要轉儲困難的數據庫(域,300 +存儲過程/函數,觸發器,數據等)。 此工具無法執行此操作。PostgreSQL:轉儲和恢復
請指教我一個很好的postgres GUI工具。
您可以隨時使用命令行實用程序。
轉儲羣集:
pg_dumpall -p 5432 > /path/to/my/dump_file.sql
轉儲單個數據庫:
pg_dump -p 5432 mydb > /path/to/my/mydb_dump.sql
只輸出模式:
pg_dump -p 5432 mydb -s > /path/to/my/mydb_dump_schema.sql
如果要還原到一個空的數據庫,你可能想之前運行恢復:
DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;
不需要在這種情況下pg_dump
的--clean
選項。
pgAdmin3會訣竅,它包含在安裝程序中的pg_dump和pg_restore。
由於此源。我不喜歡這個工具,因爲它的禁慾界面。 BTW pg_dump沒有像'delete ... if ... exists'這樣的轉儲選項,它只有'-c'選項 – DmitryR 2012-04-26 16:07:52
這是一個有趣的問題。爲什麼pg_dump必須刪除一些東西?是的,pg_dump是從我知道的數據庫中進行正確轉儲的唯一方法,所有GUI工具都在後臺使用這一軟件。 – 2012-04-26 16:11:52
另外,'--clean'選項有什麼問題?如果要恢復時要刪除的對象不存在,則不會中斷。 – 2012-04-26 16:16:09
備份你的數據庫沒有工具needed.we可以與終端
的所有命令都應該運行的Postgres的用戶做。
sudo su - postgres
備份單個數據庫
pg_dump db_name > db_backup.sql
恢復單個數據庫
psql db_name < db_backup.sql
備份整個postgres的數據庫集羣
pg_dumpall > cluster_backup.sql
恢復整個postgres的數據庫集羣
psql -f cluster_backup.sql postgres
,給予多個命令backup commands
恢復目標數據庫必須爲空。是否有任何解決方案添加'刪除如果存在...'轉儲? – DmitryR 2012-04-26 16:39:59
@DmitryR:我在回答中加了一點。 – 2012-04-26 17:04:41