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) scnfrom 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 .......;

转载于:https://www.cnblogs.com/henuyuxiang/p/6222967.html

Oracle表和表数据恢复相关推荐

  1. Oracle drop删表后的数据恢复

    !!!芭比Q了啊!! 近期做了一次系统迁移,将测试环境的系统由Windows迁移到Centos上面,先迁应用再迁前端(前后端分离的),安装各种应用巴拉巴拉,最后到迁移数据库了,系统用的是Oracle数 ...

  2. [Oracle]理解undo表空间

    [Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...

  3. ORACLE 数据、表误删恢复(转)

    今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志) 删除表中数据有三种方法: ·delete(删除一条记录) ·drop或truncate删除表格中数据 ...

  4. 【Oracle数据库丢失表排查思路】

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

  5. Oracle数据库恢复表和表数据

    Oracle 表和表数据恢复 1. 表恢复 对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的. 数据表和其中的数据都是可以恢复回来的, ...

  6. oracle 闪回表定义,oracle闪回表详解

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

  7. oracle sqlplus 创建表,如何使用SQL语言在SQL*Plus中创建表

    在Oracle中,通常通过两种方法来创建,一种方法是使用OEM图形化管理工具来创建,另一种方法是在SQL*Plus中执行SQL语句来实现. 这里主要说用SQL语句创建. 使用SQL*Plus语句创建表 ...

  8. oracle主从关系表查询,Oracle 主从表联合查询解决方法

    Oracle 主从表联合查询 表A id   type   name 1    E      AA 2    F 表B id   Aid    name 1    2      BB 2    2   ...

  9. 关于Oracle.ManagedDataAccess数据库表加字段后,必须重启的问题

    关于Oracle.ManagedDataAccess数据库表加字段后,必须重启的问题,解决方法如下: 在数据库连接字串中,增加一个参数:Metadata Pooling=false 如"Da ...

最新文章

  1. 学生的新增mySQL文档_MySQL增删改查
  2. 第十二周项目一-实现复数类中的运算符重载(2)
  3. DESTOON 404
  4. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
  5. 计算机第二阶段在线作业冯,中国石油大学(北京)《计算机应用基础》第一次在线作业 2...
  6. Linux下shellcode的编写
  7. flash java 通信,Flash到JavaScript的通信实例
  8. transform.SimilarityTransform()==>图像的相似变换=等距变换(平移+旋转变换)+均匀尺度缩放
  9. VS 错误: 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...
  10. vscode 推荐premiter_vscode 有哪些让人眼前一亮的插件?
  11. mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
  12. Android下异步扫描视频文件缩略图
  13. Go基础编程:工作区
  14. 使用npm和命令行强制删除文件
  15. 用计算机制作课程表,怎么用word做表格-Word制作课程表的方法,学习必备表格,简单易学...
  16. 求两个数最大公因数的c语言程序
  17. 如何使用K8S实现自动化部署
  18. Win10小娜搜索空白什么都不显示怎么办,开始菜单,搜索空白
  19. Install Ubuntu18.04.1 and Win7 on A53S
  20. 使用流报错:stream has already been operated upon or closed

热门文章

  1. Centos7之Gcc安装
  2. SpringMVC解决前台传入的数组或集合类型数据
  3. bzoj 3218: a + b Problem
  4. Android——用Activity和Service实现简单的音乐播放器
  5. 从软件工程看,语言只是工具
  6. SharePoint Server 2007 trial --- 年末大餐细细品尝 (第七口)
  7. 《数据管理能力成熟度模型》标准宣贯会在上海召开
  8. flexbox 伸缩布局
  9. ipcs, ipcrm
  10. There was a problem importing one of the Python modules required to run yum