PostgreSQL數(shù)據(jù)庫(kù)備份的幾種實(shí)現(xiàn)方法
pg_dump 和 pg_dumpall
在 PostgreSQL 中,pg_dump 和 pg_dumpall 是兩個(gè)常用的備份工具,分別用于邏輯備份單個(gè)數(shù)據(jù)庫(kù)和整個(gè)數(shù)據(jù)庫(kù)集群。
檢查pg_dump
和 pg_dumpall
命令是否可用
su - postgres pg_dump --version pg_dumpall --version
使用 pg_dump 備份單個(gè)數(shù)據(jù)庫(kù)
pg_dump -U <用戶名> -h <主機(jī)名> -p <端口號(hào)> -F <格式> -f <輸出文件路徑> <數(shù)據(jù)庫(kù)名>
參數(shù):
-U
:指定數(shù)據(jù)庫(kù)用戶名。-h
:指定數(shù)據(jù)庫(kù)主機(jī)地址(默認(rèn) localhost)。-p
:指定數(shù)據(jù)庫(kù)端口(默認(rèn) 5432)。-F
:指定備份格式:plain
(默認(rèn)):生成 SQL 腳本文件。c
:自定義格式(支持壓縮,需用 pg_restore 恢復(fù))。d
:目錄格式(支持并行備份)。t
:tar 格式。
-f
:指定輸出文件路徑。--schema-only
:僅備份表結(jié)構(gòu)(不包含數(shù)據(jù))。--data-only
:僅備份數(shù)據(jù)(不包含表結(jié)構(gòu))。-t <表名>
:備份特定表。-j <并行任務(wù)數(shù)>
:并行備份(適用于大數(shù)據(jù)庫(kù))。
示例
備份整個(gè)數(shù)據(jù)庫(kù)為 SQL 文件:
pg_dump -U postgres -h localhost -p 5432 -F p -f /path/to/backup.sql mydb
-F p
表示輸出為普通 SQL 文件。mydb
是要備份的數(shù)據(jù)庫(kù)名。
備份整個(gè)數(shù)據(jù)庫(kù)為自定義格式(支持壓縮):
pg_dump -U postgres -h localhost -p 5432 -F c -f /path/to/backup.custom mydb
-F c
表示輸出為自定義格式(需用pg_restore
恢復(fù))。
備份特定表:
pg_dump -U postgres -h localhost -p 5432 -F p -t users -f /path/to/users_backup.sql mydb
-t users
表示僅備份users
表。
僅備份表結(jié)構(gòu):
pg_dump -U postgres -h localhost -p 5432 --schema-only -f /path/to/schema.sql mydb
僅備份數(shù)據(jù)(不包含表結(jié)構(gòu)):
pg_dump -U postgres -h localhost -p 5432 --data-only -f /path/to/data.sql mydb
使用 pg_dumpall 備份整個(gè)數(shù)據(jù)庫(kù)集群
基本用法
pg_dumpall
用于備份整個(gè) PostgreSQL 集群,包括所有數(shù)據(jù)庫(kù)、角色(用戶)、表空間等全局對(duì)象。
命令格式:
pg_dumpall -U <用戶名> -h <主機(jī)名> -p <端口號(hào)> -f <輸出文件路徑> [選項(xiàng)]
參數(shù):
-g
:僅備份全局對(duì)象(角色、表空間等)。-c
:在備份中包含刪除數(shù)據(jù)庫(kù)的命令(用于恢復(fù)時(shí)清理舊數(shù)據(jù))。-v
:?jiǎn)⒂迷敿?xì)模式(顯示備份過(guò)程)。
示例
備份整個(gè)集群:
pg_dumpall -U postgres -h localhost -p 5432 -f /path/to/cluster_backup.sql
- 生成的 SQL 文件包含所有數(shù)據(jù)庫(kù)、角色和表空間。
僅備份全局對(duì)象(角色、表空間):
pg_dumpall -U postgres -h localhost -p 5432 -g -f /path/to/globals.sql
備份整個(gè)集群并包含清理命令:
pg_dumpall -U postgres -h localhost -p 5432 -c -f /path/to/cluster_backup.sql
恢復(fù)備份
恢復(fù) pg_dump 備份
SQL 文件恢復(fù):
psql -U <用戶名> -h <主機(jī)名> -d <目標(biāo)數(shù)據(jù)庫(kù)> -f <備份文件路徑>
示例:
psql -U postgres -h localhost -d mydb -f /path/to/backup.sql
自定義格式恢復(fù):
pg_restore -U <用戶名> -h <主機(jī)名> -d <目標(biāo)數(shù)據(jù)庫(kù)> <備份文件路徑>
示例:
pg_restore -U postgres -h localhost -d mydb /path/to/backup.custom
恢復(fù) pg_dumpall 備份
恢復(fù)整個(gè)集群備份:
psql -U postgres -h localhost -d postgres -f /path/to/cluster_backup.sql
需以 postgres
用戶連接到默認(rèn)數(shù)據(jù)庫(kù)(如 postgres
),因?yàn)榛謴?fù)過(guò)程中會(huì)創(chuàng)建其他數(shù)據(jù)庫(kù)。
恢復(fù)全局對(duì)象備份:
psql -U postgres -h localhost -d postgres -f /path/to/globals.sql
Tips
權(quán)限要求:
pg_dump
需要對(duì)目標(biāo)數(shù)據(jù)庫(kù)有讀取權(quán)限。pg_dumpall
需要超級(jí)用戶權(quán)限(以備份角色和表空間)。
備份格式選擇:
- 如果需要靈活的恢復(fù)選項(xiàng)(如選擇性恢復(fù)表),建議使用自定義格式(
-F c
)。 - 如果需要快速恢復(fù),SQL 文件可能更直接。
并行備份:
- 對(duì)大型數(shù)據(jù)庫(kù),使用
-j <并行任務(wù)數(shù)>
可加速備份(需 PostgreSQL 12+)
到此這篇關(guān)于PostgreSQL數(shù)據(jù)庫(kù)備份的幾種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)PostgreSQL數(shù)據(jù)庫(kù)備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgreSQL如何設(shè)置數(shù)據(jù)庫(kù)執(zhí)行超時(shí)時(shí)間
本文我們將深入探討PostgreSQL數(shù)據(jù)庫(kù)中的一個(gè)關(guān)鍵設(shè)置SET?statement_timeout,這個(gè)設(shè)置對(duì)于管理數(shù)據(jù)庫(kù)性能和優(yōu)化查詢執(zhí)行時(shí)間非常重要,讓我們一起來(lái)了解它的工作原理以及如何有效地使用它2024-01-01詳解PostgreSQL?14.4安裝使用及一些安裝的異常問(wèn)題
這篇文章主要介紹了PostgreSQL?14.4的安裝以及使用以及一些安裝的異常,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07pgsql之pg_stat_replication的使用詳解
這篇文章主要介紹了pgsql之pg_stat_replication的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Postgresql數(shù)據(jù)庫(kù)密碼忘記的詳細(xì)解決方法
在使用PostgreSQL數(shù)據(jù)庫(kù)時(shí),忘記數(shù)據(jù)庫(kù)密碼可能會(huì)影響到正常的開(kāi)發(fā)和維護(hù)工作,這篇文章主要介紹了Postgresql數(shù)據(jù)庫(kù)密碼忘記的詳細(xì)解決方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06PostgreSQL數(shù)據(jù)庫(kù)字符串拼接、大小寫(xiě)轉(zhuǎn)換以及substring詳解
在日常工作中會(huì)遇到將多行的值拼接為一個(gè)值展現(xiàn),下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫(kù)字符串拼接、大小寫(xiě)轉(zhuǎn)換以及substring的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04使用postgresql 模擬批量數(shù)據(jù)插入的案例
這篇文章主要介紹了使用postgresql 模擬批量數(shù)據(jù)插入的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL中擴(kuò)展moddatetime的使用
PostgreSQL的moddatetime擴(kuò)展通過(guò)觸發(fā)器自動(dòng)維護(hù)時(shí)間戳字段,輕量高效,適用于審計(jì)日志和多租戶系統(tǒng),具有一定的參考價(jià)值,感興趣的可以了解一下2025-06-06postgreSQL數(shù)據(jù)庫(kù)的監(jiān)控及數(shù)據(jù)維護(hù)操作
這篇文章主要介紹了postgreSQL數(shù)據(jù)庫(kù)的監(jiān)控及數(shù)據(jù)維護(hù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL對(duì)GROUP BY子句使用常量的特殊限制詳解
這篇文章主要介紹了PostgreSQL對(duì)GROUP BY子句使用常量的特殊限制詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02淺談postgresql數(shù)據(jù)庫(kù)varchar、char、text的比較
這篇文章主要介紹了淺談postgresql數(shù)據(jù)庫(kù)varchar、char、text的比較,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12