得益于自己的好习惯,每次更新数据都是在测试库把sql先跑一遍,才敢到线上库执行。其实即使出错了,还有恢复的余地。步骤如下。
步骤一:
SELECT * FROM js_gkb_unit AS OF TIMESTAMP TO_TIMESTAMP('20201223 14:30:00','YYYYMMDD HH24:MI:SS')
看下这条sql,js_gkb_unit就是你要回滚的表名,后面的时间戳就是你想回滚到的时间点。执行这条语句,查看数据,确定此时间点就是想回滚到的那个点。
步骤二:
create table js_gkb_unit_bak as SELECT * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('20201223 14:30:00','YYYYMMDD HH24:MI:SS');
此条语句的意思是,创建一张新表js_gkb_unit_bak并且将js_gkb_unit这张表在此‘20201223 14:30:00’,'YYYYMMDD HH24:MI:SS’时间戳的数据灌入其中。
步骤三:
alter table js_gkb_unit_bak rename to js_gkb_unit
将表重命名即可