標籤:使用者名稱 str 方案 lib 匯入 控制台 安裝 min 注意
PostgreSQL內建一個用戶端pgAdmin,裡面有個備份,復原選項,也能對資料庫進行備份 恢複(還原),但最近探索資料庫慢慢龐大的時候,經常出錯,備份的檔案過程中出錯的幾率那是相當大,手動調節灰常有限。所以一直尋找完美的備份恢複方案。
夢裡尋他千百度,伊人卻在燈火闌珊處...其實PostgreSQL內建不少的工具,尋找的備份恢複方案就在其中:pg_dump,psql。這兩個指令 在資料庫的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然後進入到bin檔案夾,會看到不少的exe檔案,這就是PostgreSQL內建的工具了。裡面會找到 pg_dump.exe,psql.exe兩個檔案。我們怎麼用他們?
用法:
備份資料庫,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
開始-運行-cmd 彈出dos控制台;然後 在控制台裡,進入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最後執行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
指令解釋:如上命令,pg_dump 是備份資料庫指令,164.82.233.54是資料庫的ip地址(必須保證資料庫允許外部存取的許可權哦~),當然本地的資料庫ip寫 localhost;postgres 是資料庫的使用者名稱;databasename 是資料庫名。> 意思是匯出到C:\databasename.bak檔案裡,如果沒有寫路徑,單單寫databasename.bak檔案名稱,那麼備份檔案會儲存在C: \Program Files\PostgreSQL\9.0\bin 檔案夾裡。
恢複資料庫,指令如下:
psql -h localhost -U postgres -d databasename < C:\databasename.bak(測試沒有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測試成功)
指令解釋:如上命令,psql是恢複資料庫命令,localhost是要恢複到哪個資料庫的地址,當然你可以寫上ip地址,也就是說能遠程恢複(必須保證 資料庫允許外部存取的許可權哦~);postgres 就是要恢複到哪個資料庫的使用者;databasename 是要恢複到哪個資料庫。< 的意思是把C:\databasename.bak檔案匯入到指定的資料庫裡。
以上所有的是針對windows而言的,如果在linux下,會不會有效?
在linux裡依然有效。有一個值得注意的是:如果直接進入PostgreSQL的安裝目錄bin下,執行命令,可能會出現 找不到pg_dump,psql的現象,我們在可以這樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak
恢複:
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak
轉自:http://www.cnblogs.com/xiaofoyuan/p/5253332.html#3715264
原文地址:http://www.open-open.com/lib/view/open1385448336182.html
postgresqlDatabase Backup和恢複(超快)