首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PostgreSQL的"pg_restore“和零宕机恢复数据?

问如何使用PostgreSQL的"pg_restore“和零宕机恢复数据?
EN

Stack Overflow用户
提问于 2020-08-15 14:46:06
回答 1查看 1.3K关注 0票数 1

我试着恢复一张大桌子

pg_restore.exe -U postgres -d db_name --clean --if-exists --single-transaction F:\Backups\PostgreSQL\data.dump.gz

因此,我有一个读锁定几分钟。如何实现零宕机读取的数据恢复?我只需要阅读。

EN

回答 1

Stack Overflow用户

发布于 2020-08-17 01:47:13

我不认为有一种方法可以让pg_restore为您做这件事,但是您可以将pg_restore的输出转储到一个文件中并对其进行编辑,或者使用像sed或perl这样的东西来注入删除。

这应该适用于不需要加引号的表名称,并假设要复制的数据中没有第一列以'COPY‘开头:

代码语言:javascript
复制
pg_restore --data-only --single-transaction dmp.dmp -f -| perl -pe 's/^COPY ([\w.]+)/delete from $1; copy $1/' | psql -U postgres -d db_name

但是,在我看来,您的模式更改方法并不是那么脏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63423374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档