Oracle数据库表及表数据的恢复

1. 表恢复

对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的。

数据表和其中的数据都是可以恢复回来的,记得 flashback table 是从 Oralce 10g 提供的,一般步骤有:

a.从 flashback table 里查询被删除的数据表

select * from recyclebin order by droptime desc

b.执行表的恢复

flashback table '需要恢复的表名' to before drop

2. 表数据恢复

对误删的表记录,只要没有 truncate 语句,就可以根据事务的提交时间进行选择恢复。

这功能也是 oracle 10g 以上提供的,一般步骤有:

a. 先从 flashback_transaction_query 视图里查询,视图提供了供查询用的表名称、事务提交时间、undo_sql等字段。

select * from flashback_transaction_query where table_name='需要恢复数据的表名(大写)';

b.查询删除的时间点

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time,
to_char(dbms_flashback.get_system_change_number) scn
from dual;

或者你知道大概记得删除点,你也可以这样试试查询,找出删除前的时间点

select * from '需要恢复数据的表名' as of timestamp to_timestamp('时间点', 'yyyy-mm-dd hh24:mi:ss');

c.进行数据恢复

通过第二步找到数据丢失的时间点,恢复极为简单,语句为

flashback table '需要恢复数据的表名' to timestamp to_timestamp('数据丢失的前一时间点','yyyy-mm-dd hh24:mi:ss');

注意:在执行上述操作的时候,需要允许 oracle 修改分配给行的 rowid,这时候 oracle 需要给恢复的数据分配新的物理地址。

alter table table_name enable row movement;

其实找到数据丢失前的时间点后,恢复数据也可以将需要恢复的数据直接插入到目标表中

insert into '数据丢失的表' select * from t of timestamp to_timestamp('时间点', 'yyyy-mm-dd hh24:mi:ss') where .......;

Oracle表和表数据恢复的更多相关文章

  1. ORACLE将表中的数据恢复到某一个时间点

    执行如下SQL将test_temp表中的数据恢复到 2013-04-26  21:06:00 注意,这里一定要先删除全部数据,否则可能会导致数据重复 delete from test_temp; in ...

  2. oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  3. [Oracle]理解undo表空间

    一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...

  4. oracle数据库误删的表以及表中记录的恢复

    oracle数据库误删的表以及表中记录的恢复 一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: --1.从flash bac ...

  5. Oracle数据库丢失表排查思路

    Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路: 由于我们代 ...

  6. Oracle的外部表

    一.外部表特性 数据文件位于操作系统之外,并且具有一定的格式分割的文本文件或其他类型文件.ORACLE的外部表通过SQL的形式访问数据文件中的数据,数据并不需要加载到数据库中且数据是可读的,所以不用D ...

  7. WPF根据Oracle数据库的表,生成CS文件小工具

    开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...

  8. (转)Oracle 在Drop表时的Cascade Constraints

    Oracle 在Drop表时的Cascade Constraints 假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键).则当删除A表时,如不特殊说明,则 drop table  ...

  9. oracle 用户与表空间关系

    oracle用户与表空间关系用户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于一个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放入A和B3. 仓库不属于任何商 ...

随机推荐

  1. ckplayer 实现

    <div id="flashcontent"></div> <div id="video" style="positio ...

  2. Implementing a builder: Zero and Yield

    原文地址:http://fsharpforfunandprofit.com/posts/computation-expressions-builder-part1/ 前面介绍了bind和continu ...

  3. Delphi用ADOquery主从表例子(转总结)

    http://blog.csdn.net/kandy_zheng/article/details/1639184 在sql server 的northwide 中建立主表 create table s ...

  4. jquery选择器的简单使用

    1.$()可以是$(expresion),即css选择器.Xpath或html元素,也就是通过上述表达式来匹配目标元素. 比如:$("a")构造的这个对象,是用CSS选择器构建了一 ...

  5. iOS10访问用户权限的描述key值汇总

    https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Ar ...

  6. 转 精选37条强大的常用linux shell命令组合

    1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 p ...

  7. ListView间隔设置颜色

    在Adapter的getView中 if (position % 2 == 0) holder.shoucangbt.setBackgroundColor( Color.rgb(246, 246, 2 ...

  8. ios UIApplocation 中APP启动方式

    iOS app启动的方式有哪些: 自己启动(用户手动点击启动) urlscheme启动(关于urlScheme的详解)http://www.cnblogs.com/sunfuyou/p/6183064 ...

  9. MySQL忘记密码解决办法

    一.windows下mysql忘记root密码的解决方法 详细出处参考:http://www.jb51.net/article/21984.htm 1,停止MYSQL服务,CMD打开DOS窗口,输入 ...

  10. Q promise API简单翻译

    详细API:https://github.com/kriskowal/q/wiki/API-Reference Q提供了promise的一种实现方式,现在在node中用的已经比较多了.因为没有中文的a ...