标签:场景 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
标签:场景 mac 怎么办 base 失败 输出 提前 post postgre
原文地址:https://www.cnblogs.com/zhangtianxiao/p/10339810.html