码迷,mamicode.com
首页 > 数据库 > 详细

postgresql数据备份小结

时间:2019-01-30 21:42:23      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:场景   mac   怎么办   base   失败   输出   提前   post   postgre   

这篇文章谈到的是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

postgresql数据备份小结

标签:场景   mac   怎么办   base   失败   输出   提前   post   postgre   

原文地址:https://www.cnblogs.com/zhangtianxiao/p/10339810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!