postgres 數據備份與恢復

jopen 11年前發布 | 97K 次閱讀 PostgreSQL 數據庫服務器 Postgres

PostgreSQL自帶一個客戶端pgAdmin,里面有個備份,恢復選項,也能對數據庫進行備份 恢復(還原),但最近發現數據庫慢慢龐大的時候,經常出錯,備份的文件過程中出錯的幾率那是相當大,手動調節灰常有限。所以一直尋找完美的備份恢復方案。


夢里尋他千百度,伊人卻在燈火闌珊處...其實PostgreSQL內置不少的工具,尋找的備份恢復方案就在其中:pg_dump,psql。這兩個指令 在數據庫的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.0\;然后進入到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

指令解釋:如上命令,psql是恢復數據庫命令,localhost是要恢復到哪個數據庫的地址,當然你可以寫上ip地址,也就是說能遠程恢復(必須保證 數據庫允許外部訪問的權限哦~);postgres 就是要恢復到哪個數據庫的用戶;databasename 是要恢復到哪個數據庫。<  的意思是把C:\databasename.bak文件導入到指定的數據庫里。

以上所有的是針對windows而言的,如果在linux下,會不會有效?



在linux里依然有效。有一個值得注意的是:如果直接進入PostgreSQL的安裝目錄bin下,執行命令,可能會出現 找不到pg_dump,psql的現象,我們在可以這樣:

備份:

/opt/PostgreSQL/9.0/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak

恢復:


/opt/PostgreSQL/9.0/bin/psql -h localhost -U postgres -d databasename < databasename.bak

原文地址:http://2goo.info/blog/detail/516/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!