您好,登錄后才能下訂單哦!
小編給大家分享一下postgresql備份格式有哪些,應該如何選擇,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
數據庫的備份有多種分類方式。按照備份后的文件類型,可以分為物理備份(文件系統級別的備份)和邏輯備份(備份后的文件是sql文
件或特定格式的導出文件);按照備份過程中是否停止數據庫服務,可分為冷備份(備份過程中停止數據庫服務)和熱備份(備份過程中
數據庫服務開啟并可供用戶訪問);按照備份是否是完整的數據庫,可分為全量備份(備份是完整的數據庫)和增量備份(備份是上一次全
量備份后數據庫改變的內容)。
Postgresql的常見備份方式有以下三種:
1. 文件系統級別的冷備份。
這種備份方式需要關閉數據庫,然后拷貝數據文件的完整目錄。恢復數據庫時,只需將數據目錄復制到原來的位置。該方式實際工作中很少使用。
2. SQL轉儲。
這里我們用到的工具是pg_dump和pg_dumpall。
這種方式可以在數據庫正在使用的時候進行完整一致的備份,并不阻塞其它用戶對數據庫的訪問。它會產生一個腳本文件,里面包含備份
開始時,已創建的各種數據庫對象的SQL語句和每個表中的數據。可以使用數據庫提供的工具pg_dumpall和pg_dump來進行備份。
pg_dump只備份數據庫集群中的某個數據庫的數據,它不會導出角色和表空間相關的信息,因為這些信息是整個數據庫集群共用的,不
屬于某個單獨的數據庫。pg_dumpall,對集簇中的每個數據庫調用pg_dump來完成該工作,還會還轉儲對所有數據庫公用的全局對象
(pg_dump不保存這些對象)。 目前這包括適數據庫用戶和組、表空間以及適合所有數據庫的訪問權限等屬性。
例如,在我的計算機上,可使用如下命令對名為dbname的數據庫進行備份:
pg_dump –h 127.0.0.1 -p 5432 -U postgres -c -C –f dbname.sql dbname
使用如下命令可對全部pg數據庫進行備份。
pg_dumpall –h 127.0.0.1 –p 5432 -U postgres –c -C –f db_bak.sql
恢復方式很簡單。執行恢復命令即可:
psql –h 127.0.0.1 -p 5432 -U postgres –f db_bak.sql
3. 連續歸檔
這種方式的策略是把一個文件系統級別的全量備份和WAL(預寫式日志)級別的增量備份結合起來。當需要恢復時,我們先恢復文件系統級別的備份,然后重放備份的WAL文件,把系統恢復到之前的某個狀態。這種備份有顯著的優點:
不需要一個完美的一致的文件系統備份作為開始點。備份中的任何內部不一致性將通過日志重放來修正。
可以結合一個無窮長的WAL文件序列用于重放,可以通過簡單地歸檔WAL文件來達到連續備份。
不需要重放WAL項一直到最后。可以在任何點停止重放,并使數據庫恢復到當時的一致狀態。
可以連續地將一系列WAL文件輸送給另一臺已經載入了相同基礎備份文件的機器,得到一個實時的熱備份系統。
看完了這篇文章,相信你對postgresql備份格式有哪些,應該如何選擇有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。