误删表数据后,使用已有的全量备份,恢复表数据 文章目录环境文档用途详细信息相关文档环境系统平台Linux x86-64 Red Hat Enterprise Linux 7版本4.5.8文档用途介绍误删表数据后使用已有的全量备份恢复表数据适用于不需要恢复到某一时间点的情况。详细信息1、正常备份目录如下archive hgdbbak_20250517_1 hgdbbak_20250517_1.log hgdbbak_20250518_1 hgdbbak_20250518_1.log hgdbbak_20250519_1 hgdbbak_20250519_1.log runstat.info2、查看备份日志备份日志log文件出现如下文字说明使用的全量备份是一个完整的可用备份。cat hgdbbak_20250519_1.log 31407/31407 kB (100%), 1/1 tablespace pg_basebackup: write-ahead log end point: 0/A000100 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: syncing data to disk ... pg_basebackup: base backup completed 2025-05-19 15:45:41 The name of the backup file is :hgdbbak_20250519_1,the name of the archive is: 2025-05-19 15:45:41 There are no archives to be deleted.3、复制备份复制备份文件cp -a hgdbbak_20250519_1 hgdbbak_20250519 -rf4、添加或修改参数端口归档cd hgdbbak_20250519 vi postgresql.auto.conf port5867 #与现数据库端口不同即可 archive_modeoff #修改为off5、启动数据库备份表数据#指定data目录启动数据库cd../pg_ctlstart-D./hgdbbak_20250519#当前目录启动端口为5867停止时也需要指定data目录停止pg_ctl stop -D ./hgdbbak_20250519#备份表数据pg_dump-h127.0.0.1-p5867-d testdb-U sysdba--tablepublic.table1 -v -Fc -f /path/table1.backup6、恢复表数据#修改表名因为恢复时表名相同会覆盖原表数据psql testdb sysdba-p5866testdb# alter table table1 rename to table1_bak;#恢复数据pg_restore-h127.0.0.1-p5866-U sysdba-d testdb/path/table1.backup7、对比数据使用sql查询对比两张表的数据插入误删的数据。相关文档011979101如何恢复误删的数据