postgresql資料庫備份和恢復

2021-09-07 08:18:43 字數 1733 閱讀 7140

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

用法:備份資料庫,指令如下:

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

PostgreSQL資料庫備份指令碼

資料庫備份shell指令碼 sh bin bash now date y m d h m s mkdir p srv pg backup for db name in 庫名1 庫名2 庫名3 do srv pgsql92 bin pg dump upgsql blobs format c compr...

postgresql資料庫備份還原

背景 公司 原先將postgresql跑在docker容器內,並且使用了dockerswarm拉力編排,portainer的視覺化來管理 變更需求 將postgresql 遷離swarm集群,單獨使用docker run命令來執行 備份 pg dump u 使用者名稱 h 資料庫ip d 需要備份的...

PostgreSQL資料庫備份與恢復

參考了這篇文章 由於想要備份測試資料所以就進行了一下調查,以前成功過一次,但是由於時間久了,就忘記了,還是需要記錄一下。windows裡面,命令列進入postgresql的安裝目錄,執行pg dump h 10.u postgres testdb testdb.bak 會在當前安裝目錄生成乙個tes...