欢迎光临
我们一直在努力

误删表数据后,使用已有的全量备份,恢复表数据

文章目录

  • 环境
  • 文档用途
  • 详细信息
  • 相关文档

环境

系统平台: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.info

2、查看备份日志

备份日志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 -rf

4、添加或修改参数:端口,归档

cd hgdbbak_20250519
vi postgresql.auto.conf
port=5867 #与现数据库端口不同即可
archive_mode='off' #修改为off

5、启动数据库,备份表数据

#指定data目录启动数据库
cd ../
pg_ctl start D ./hgdbbak_20250519 #当前目录启动端口为5867,停止时也需要指定data目录停止,pg_ctl stop -D ./hgdbbak_20250519

#备份表数据
pg_dump h 127.0.0.1 p 5867 d testdb U sysdba –table=public.table1 -v -Fc -f /path/table1.backup

6、恢复表数据

#修改表名,因为恢复时表名相同会覆盖原表数据
psql testdb sysdba p 5866
testdb=# alter table table1 rename to table1_bak;

#恢复数据
pg_restore h 127.0.0.1 p 5866 U sysdba d testdb /path/table1.backup

7、对比数据

使用sql查询,对比两张表的数据,插入误删的数据。

相关文档

011979101:如何恢复误删的数据

赞(0)
未经允许不得转载:171主机测评 » 误删表数据后,使用已有的全量备份,恢复表数据
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址