首页

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

标签:oracle还原,数据库恢复,数据recovery,V$SQL     发布时间:2018-02-04   

一、前言

对于ORACLE数据库因为人为误操作(更新update、删除delete等)或业务需要将数据恢复到某个历史点,下面通过具体示例SQL脚本操作步骤说明。

二、示例操作

1.向数据库用户test802的GUEST表中插入两条数据,结果如下

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

2.分别对GUEST表进行修改、删除记录操作,结果如下

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

3.查询oracle系统操作视图表V$SQL,如下所示,可以看到最近操作sql记录,最近时间点“2018-02-04 14:42:10”

select  first_load_time 第一次修改时间点,last_load_time 最近修改时间点,last_active_time,sql_text,parsing_schema_name 数据库用户  from  V$SQL  @b@where   parsing_schema_name='TEST802'  and  ( sql_text  like  'update%'  or  sql_text  like  'delete%')

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

4.现只需将数据恢复到“2018-02-04/14:22:08”即可将误操作结果恢复到之前正确的数据版本,具体如下

-- 创建guest_recovery恢复表,将14:22:08时间点的数据还原到该表中@b@create  table  guest_recovery  as  select  *  from   guest  as  of  timestamp  to_timestamp('2018-02-04 14:22:08','yyyy-mm-dd hh24:mi:ss')

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

5.最后将guest_recovery表数据迁移到guest表,即可完成guest表的数据恢复

-- 删除原来guest表的数据@b@delete  from  guest@b@-- 将恢复表中数据还原到guest@b@insert  into  guest  select  *  from  guest_recovery

关于Oracle数据库如何将数据状态恢复到历史的事件点详细操作步骤(图例)

��


  • ◆ 相关内容