postgreSQL恢复至故障点精准恢复-创新互联

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

成都创新互联公司服务紧随时代发展步伐,进行技术革新和技术进步,经过10多年的发展和积累,已经汇集了一批资深网站策划师、设计师、专业的网站实施团队以及高素质售后服务人员,并且完全形成了一套成熟的业务流程,能够完全依照客户要求对网站进行成都网站制作、成都网站设计、建设、维护、更新和改版,实现客户网站对外宣传展示的首要目的,并为客户企业品牌互联网化提供全面的解决方案。

千万别跑路,只要数据数据库,无论是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)这个工作建议手工打造

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


当前标题:postgreSQL恢复至故障点精准恢复-创新互联
分享路径:http://scyanting.com/article/djppci.html