资讯专栏INFORMATION COLUMN

PGsql通过归档恢复到指定位置实验

IT那活儿 / 722人阅读
PGsql通过归档恢复到指定位置实验

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 

1

当前环境:

2

归档配置
因为本次实验需要通过归档来恢复数据,所以需要开启pgsql的归档模式。重启生效。
--修改postgresql.conf参数文件:
vim postgresql.conf
archive_mode = on
archive_command = test ! -f /pgdata/archive/%f && cp %p /pgdata/archive/%f

3

前期准备
1)测试数据准备
2)备份数据
---执行备份:
pg_basebackup -D /pgdata/pg_backup -Ft -Pv -Upostgres -h 192.168.168.123 -p 1921
3)备份后继续创建测试数据
test=# create table test3 (id int);
CREATE TABLE
test=# insert into test3 values(123);
INSERT 0 1
test=# insert into test3 values(125);
4)切换归档日志
postgres=# select pg_switch_wal();
pg_switch_wal
---------------
0/9012CB0
(1 row)
 

4

故障模拟
1)模拟误操作删除database
test=# c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# drop database test;
DROP DATABASE
2)关闭pgsql
--关闭:
pg_ctl stop

3)删除数据
--删除:
rm -rf /pgdata/12/data/*

5

恢复到drop前的状态
1)恢复数据
--恢复数据文件:
tar xf base.tar -C /pgdata/12/data/
--恢复归档:
tar xf pg_wal.tar -C /pgdata/archive/
注:本次实验虽然删除了数据文件,但归档仍保留;所以在这一步中,恢复归档作用不大,因为后续需要用的归档是完全备份后生成的归档,而不是备份文件中的归档文件。
2)查看归档
--查看最近的归档文件中内容:
pg_waldump 000000040000000000000009
3)选择xid
通过查看最近的归档可以看到,tx为499的记录中有drop操作记录。而当前需要恢复到drop操作之前的位置。
所以选择tx为498的位置。
4)修改postgresql.auto.conf文件
--添加恢复参照:
restore_command = cp /pgdata/archive/%f %p
recovery_target_xid=498
注:这里的参数设置中需要注释recovery_target = immediate;否则使用后会将误删除操作一并恢复。
5)恢复
---进入恢复模式:
touch /pgdata/12/data/recovery.signal
pg_ctl start
6)验证drop的database是否恢复
---关闭恢复模式:
select pg_wal_replay_resume();
至此,pgsql通过归档恢复到指定位置完成。

 



END



 


本文作者:胡晓明

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129500.html

相关文章

  • linux文件系统和日志分析

    摘要:通常情况下不需要关注单个的大小,而是需要重点关注的总数,的总字节在格式化的时候就给定了,执行命令即可查看每个硬盘分区对应的总数和已经使用的数量。 inode和block概述一:1、文件数据包括源信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区。每个扇区存储512字节block (块):连续的八个扇区组成一...

    waruqi 评论0 收藏0
  • LINUX文件系统及日志分析

    摘要:恢复文件系统下的所有内容在当前目录下会出现一个目录,里面保存了已经恢复的文件该图我们依旧是对磁盘进行一个创建分区的操作。 inode和block概述文件数据包括元信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节block (块)连续的八个扇区组成一个block(4K)是文件存取的最...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<