postgreSQL 恢复至故障点 精准恢复

朋友说到一个生产线上表数据被大批量误操作了,能否恢复。


千万别跑路,只要数据数据库,无论是MySQL,PG,Oracle等,只要日志和备份在,都可以恢复到任意故障点。

只是操作方法不同而已。



可以通过在其它机器基于故障点恢复备份数据


在其它环境中搭建一套PG环境:




编译安装的参数特别重要,否则不能启动,建议分离 data和安装软件目录,这是只需tar软件包即可。


1)查看线上环境基础配置:


show all;可以看到生产环境的blocksize和wal-segsize


2)采用线上环境版本PG软件编译安装


yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++   openssl-devel cmake 




./configure --prefix=/opt/postgres --with-pgport=5432 --with-python --with-libxml --with-wal-segsize=16 --with-blocksize=8


make && make install




插件安装:


cd contrib


make && make install


 


3)基于时间点恢复数据库:


停数据库 


# pg_stop 






利用备份恢复


# rm -rf data


tar xvf pgdata.tar 




利用 pg_waldump 找到问题的点,然后修改 recovery.conf 恢复到指定的时间点。


 


拷贝recovery.conf文件并修改以指定时间点恢复


# cp $PG_HOME/share/recovery.conf.sample /home/postgres/data 


# vi /opt/postgres/data/recovery.conf 


--新增内容,指定恢复文件和路径,%f,%p见上面说明 


restore_command = 'cp /opt/postgres/archive/%f %p' 


recovery_target_time = '2018-12-29 10:24:00+09' 


 


恢复数据后,dump表的数据到生产线即可。






99)这个工作建议手工打造


尤其是确定故障点,然后手工进行恢复,多方面确认,最后才能放心将数据放到生产线。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29497382/viewspace-2287096/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29497382/viewspace-2287096/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值