我的测试设置是在PostgreSQL9.6实例中有3个数据库,2个数据库由2个活动Web应用程序消耗。我使用pg_dump对所有数据库进行热备份。为了使CPU负载保持在阈值以下,备份脚本按顺序执行pg_dump。
pg_dump -U postgres -Fc <db-1> > <db-1>.dump
pg_dump -U postgres -Fc <db-2> > <db-2>.dump
pg_dump -U postgres -Fc <db-3> > <db-3>.dump所有三个数据库都共享用户详细信息、订阅、任务状态等信息。由于备份是在不同的时间段进行的,因此在数据恢复的情况下,数据库将在所有三个DB之间得到不一致的数据。其中一个DB大小是180GB+,仅此DB的转储时间就需要30分钟。
如何从特定时间段对所有数据库进行备份。
我不知道如何在postgresql中使用快照功能。
发布于 2019-11-29 07:42:33
您可以尝试使用--snapshot方法(https://paquier.xyz/postgresql-2/postgres-9-5-feature-highlight-pg-dump-snapshots/),但它可能比您想要的要复杂一些。
我个人的建议是用pg_basebackup创建一个集群范围的备份(或者一个第三方应用程序,它基本上可以做同样的事情,比如酒吧招待、pg_backrest等等)。
https://dba.stackexchange.com/questions/254327
复制相似问题