目录
- 创表法
- 步骤
- 注意事项:
- 闪回法
创表法
步骤
- 根据修改语句查出你需要恢复的时间点
select * from V$SQL where SQL_TEXT like '\%\%'--根据修改语句查出你需要恢复的时间点
- 根据恢复时间创建新表
create table new_table as select * from table as of timestamp to_timestamp('2020-09-10 11:44:25','yyyy-mm-dd hh24:mi:ss');--new_table :新建表的名;--table :误操作的表名; --2020-09-10 11:44:25:保存这个时间点的数据到新表。
- 将原表的数据全部删除
delete table ; --将原表的数据全部删除
- 把恢复的数据保存到原表
insert into table select * from new_table ; --把恢复的数据保存到原表。
注意事项:
- 如果操作的表数据量很大,建议停服操作,因为删除表数据的时候会非常费时间。
闪回法
Oracle 回滚数据库到某个具体的时间点,需要确保中间没有人修改数据,否则中间修改的数据会丢失
alter table xxx enable row movement;
flashback table xxx to timestamp to_timestamp('2023-02-21 17:00:00','yyyy-mm-dd HH24:MI:SS');