您好,登錄后才能下訂單哦!
朋友說到一個生產線上表數據被大批量誤操作了,能否恢復。
千萬別跑路,只要數據數據庫,無論是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)這個工作建議手工打造
尤其是確定故障點,然后手工進行恢復,多方面確認,最后才能放心將數據放到生產線。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。