我试着恢复一张大桌子
pg_restore.exe -U postgres -d db_name --clean --if-exists --single-transaction F:\Backups\PostgreSQL\data.dump.gz
因此,我有一个读锁定几分钟。如何实现零宕机读取的数据恢复?我只需要阅读。
发布于 2020-08-17 01:47:13
我不认为有一种方法可以让pg_restore为您做这件事,但是您可以将pg_restore的输出转储到一个文件中并对其进行编辑,或者使用像sed或perl这样的东西来注入删除。
这应该适用于不需要加引号的表名称,并假设要复制的数据中没有第一列以'COPY‘开头:
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但是,在我看来,您的模式更改方法并不是那么脏。
https://stackoverflow.com/questions/63423374
复制相似问题