暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

使用 pg_recovery 恢复数据

原创 张燎原 2022-02-14
1064

介绍

pg_recovery 是一款 PostgreSQL 数据找回工具。可以恢复 COMMIT / DELETE / UPDATE / ROLLBACK / DROP COLUMN 操作后导致的数据变化,并以表的形式返回。

安装

wget https://codeload.github.com/radondb/pg_recovery/zip/refs/heads/master -O /tmp/pg_recovery.zip

unzip pg_recovery.zip

cd /tmp/pg_recovery-master

make PG_CONFIG=/usr/local/pgsql/bin/pg_config

make install PG_CONFIG=/usr/local/pgsql/bin/pg_config

create extension pg_recovery

image.png

准备表和数据

image.png
image.png

update

image.png
image.png

delete

image.png

rollback

image.png

drop column

image.png

select attnum from pg_attribute, pg_class where attrelid = pg_class.oid and pg_class.relname=‘hero’ and attname ~ ‘dropped’;
image.png

select * from public.pg_recovery(‘hero’) as (id int, dropped_attnum_2 varchar(20));
image.png

显示该表历史上所有写入过的数据。

image.png

select * from public.pg_recovery(‘hero’, recoveryrow => false) as (id int, recoveryrow bool);
image.png

注意事项

目前 pg_revovery工具已支持 PostgreSQL 12/13/14 ,pg_recovery 通过读取 PostgreSQL dead 元组来恢复不可见的表数据。如果元组被 vacuum 清除掉,那么 pg_recovery 便不能恢复数据。建议每个表加一个时间列方便恢复。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论