網上已經有很多文章了,但是自己操作發現了“呵呵”。
這裏只是在Windows上面使用數據庫自帶備份工具。
postgresql備份恢復
1.運維方式備份
(1)停止數據庫,可以拷貝數據庫文件。
2.邏輯備份
(1)pg_basebackup.exe
這是需要啓動歸檔的方式備份,會及時增量備份很及時,恢復也快。
缺點:需要提前修改數據庫位歸檔模式。備份時還得手工操作,將備份的文件拷貝到合適位置,還得修改數據庫配置。
也就是你必須是專門的數據庫人員或者運維人員,負責維護數據。
具體操作就不寫了,按照官方文檔來吧。
(2)pg_dumpall pg_dump
這2個是可以遠程備份的。具體參數就不介紹了,官方文檔有的。
2個區別是pg_dumpall 備份所有數據庫,和你連接哪個數據庫沒有關係;pg_dump是備份單個數據庫,要麼設置參數,要麼就是連接的數據庫。
其實pg_dumpall就是啓動的pg_dump,pg_dumpall發現有多少個數據庫就調用多少次。
由於2個工具看單獨使用,也就是可以通過編程控制備份,後面再說。
缺點:(1)慢。
(2)不能增量,每次都是全部備份,因此很慢
應用開發
根據上面說的,我們有專門維護人員還好,如果沒有,只是一般小項目,要求我們應用程序中做備份恢復功能怎麼辦呢?
只要第二種了。
這裏的問題就一個,沒有增量備份,每次全部備份,會有數據備份不全,丟失數據。
就目前看,一般沒有運維的小項目,可以適當損失數據。這種纔可以在應用上開發備份。
基於目前的情況和了解的東西。可以選擇pg_dumpall備份數據庫結構,不備份數據。pg_dump針對數據庫備份數據。
定期備份或者根據需要立即備份。
另外,這幾個程序都可以從安裝路徑下拷貝出來單獨使用。
他們依賴的幾個庫也都在路徑下。
pg_dumpall備份,用psql恢復。pg_dump備份,用pg_restore恢復。
我整理了一個測試樣例。採用的是二進制目錄備份,不是文本(SQL)備份。大家需要調整自己查閱文檔參數。
優勢是自動壓縮並且並行備份。劣勢是看不懂不是SQL.
需要注意的是,備份恢復時,會刪除所有數據庫內容,包括數據庫,全部重新生成。
官網文檔說不能備份用戶,沒有測試。
爲了測試,我全部拷貝了,並且寫了bat文件,全部打包了。
地址:鏈接: https://pan.baidu.com/s/1L_3UUcotRgtEla-PDYgXyA 提取碼: a635