postgresql數據備份小結


這篇文章談到的是database級別的備份

pg_dump備份, 有多個參數和選項

我想到的一個場景它沒有滿足:

備份A庫BschemaC表,
輸出的sql文件 或 歸檔文件中 create 和 copy 的目標 是 B . C
恢復時, 我想恢復到 B2.C, 這個地方就無解,
數據少, 文本還能替換,數據多到文件打不開怎么辦

既然我們提前考慮到了這種情況, 就盡量提前規避

我總結的備份步驟如下:

第一步: 無論如何, 不管是備份database, 還是schema, 都要先備份結構, trigger, function ,table,
因為它們之間可能存在依賴關系, 避免恢復數據時事務失敗, 不必要的vaccum
-s參數意味着只備份結構, 不備份data

 pg_dump  --host=localhost --port=6000 --username=demo2  --dbname=demo2  --schema=public -s 
 --file=C:\Users\zhangtianxiao\Documents\pgsql\t_b.sql

第二步: 備份數據, 備份數據可以具體到database, schema, table級別,
當整個庫, 整個schema, 又或是某張表, 總體數據量太多, 整體備份會耗時很久,
我們可以分別備份,恢復
-s參數意味着只備份數據, 不備份結構

pg_dump  --host=localhost --port=6000 --username=demo2  --dbname=demo2  --schema=public 
-t t_b -a  --file=C:\Users\zhangtianxiao\Documents\pgsql\t_b.sql

恢復數據:
pg_dump中備份的sql 或 歸檔文件中 create 和 copy 的目標已經是 schema_name + table_name,
所以這里只需要提供dbname

psql --host=localhost --port=6000 --username=demo2  db_name < C:\Users\zhangtianxiao\Documents\pgsql\t_b.sql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM