返回顶部
首页 > 资讯 > 数据库 >Oracle中Drop,Delete,Truancate表恢复
  • 281
分享到

Oracle中Drop,Delete,Truancate表恢复

2024-04-02 19:04:59 281人浏览 泡泡鱼
摘要

Oracle中Drop,delete,truancate表恢复oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法。闪回模式得满足条件(启用闪回区和启用归档):1.检查是否

Oracle中Drop,delete,truancate表恢复

oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法。

闪回模式得满足条件(启用闪回区和启用归档):

1.检查是否启动了flash recovery area

show parameter db_recovery_file

2.检查是否启用了归档

arcHive log list;


(一)Drop表的恢复

如果按照平时删除表的方法:(Drop table tablename;)的话。表不会立即被删除,而是存放于回收站中(Oracle 10g以后才有)。我们可以通过闪回(Flashback)把表恢复。

 查看被回收站中删除的表:

    Select * from dba_recyclebin (where type='TABLE'); --找出对应的表是否存在

  闪回表:

    Flashback tbale 表名 to before drop;

**回收站存放的不仅仅只有表,还有其他对象


(二)Delete表的恢复

同样,Delete后可以通过闪回时间戳或者闪回SCN号进行恢复。

  基于时间戳恢复

①确定删除数据的时间(在删除数据之前的时间就行,不过最好是删除数据的时间点)

②用以下语句找出删除的数据:

 select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh34:mi:ss')

③开启行移动功能 

 alter table 表名 enable row movement

④把删除的数据重新插入原表:

 insert into 表名 (select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh34:mi:ss'));注意要保证主键不重复。

⑤关闭行移动功能 ( 千万别忘记 )

 alter table 表名 disable row movement

  基于SCN号恢复

①获取当前的SCN号
 select dbms_flashback.get_system_change_number from dual; --假设得到scn号为10672000

②如果知道删除前的SCN号最好,如果不知道就通过闪回查询尝试.

 select count(*) from 表名 as of scn 10671000; --如果数据量为0,则继续提前scn号

 select count(*) from 表名 as of scn 10670000; --查询的数据量为原来的数据量,则ok

③通过查询的SCN号进行闪回恢复

 insert into 表名 select * from tablename as of scn 10670000;


(三)Truncate表的恢复

truncate表后不会产生日志记录和回滚段空间的使用,不能用查询闪回恢复。

①最简单的方法:下载使用PRM (数据库灾难恢复工具

②进行数据库闪回(在生产库不推荐):

 select  sysdate from dual;  --查看时间戳,确认已经开启闪回,如果没开启,只能用①方法了;

 shutdown immediate;  --关闭数据库

 startup mount;  --启动到mount状态

 flashback database to timestamp to_timestamp('2017-07-30 18:22:33','yyyy-mm-dd hh34:mi:ss');  --闪回删除时间点的时间

 alter database open;  --打开数据库









您可能感兴趣的文档:

--结束END--

本文标题: Oracle中Drop,Delete,Truancate表恢复

本文链接: https://lsjlt.com/news/50888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle中Drop,Delete,Truancate表恢复
    Oracle中Drop,delete,truancate表恢复oracle中,常常会由于一些失误导致表的删除,以下是我写的一些表恢复的方法。闪回模式得满足条件(启用闪回区和启用归档):1.检查是否...
    99+
    2024-04-02
  • mysql恢复drop表
    drop误操作删除表后,恢复的大概流程是 1、从备份中将表恢复到备份时间点 2、找到drop操作点 3、从binlog中找到备份点到drop点中间所有事件,并筛选出该表的事件 4、执行找到该表...
    99+
    2024-04-02
  • 怎样进行Oracle Delete表的恢复
    这篇文章将为大家详细讲解有关怎样进行Oracle Delete表的恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Oracle Delete表恢...
    99+
    2024-04-02
  • Oracle Drop表如何进行purge恢复ODU
    这篇文章给大家介绍Oracle Drop表如何进行purge恢复ODU,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Oracle Drop表(purge)恢复(ODU)通过O...
    99+
    2024-04-02
  • oracle中delete和drop的区别
    oracle 的 delete 和 drop 命令用于删除数据,但方式不同:delete 删除表中满足条件的特定行,可恢复已删除数据。drop 删除整个表或其他数据库对象,永久删除数据,...
    99+
    2024-05-09
    oracle
  • mysql 中怎么恢复drop表数据
    mysql 中怎么恢复drop表数据,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。   数 据 类 型 MYSQL 数据库...
    99+
    2024-04-02
  • oracle delete误删除表数据后如何恢复
    1、根据时间进行恢复 此种方式需要我们大致知道执行delete语句的时间。 查询系统当前时间:select to_char(sysdate,‘yyyy...
    99+
    2024-04-02
  • SQL怎么恢复drop掉的表
    本篇内容主要讲解“SQL怎么恢复drop掉的表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL怎么恢复drop掉的表”吧! ...
    99+
    2024-04-02
  • RMAN如何恢复drop purge的表
    这篇文章主要介绍RMAN如何恢复drop purge的表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!@ORA12C>  alter s...
    99+
    2024-04-02
  • oracle delete删除怎么恢复吗
    oracle 中使用 delete 删除的数据可从回收站恢复。恢复步骤包括:1. 确认数据可恢复;2. 回滚事务;3. 使用闪回查询;4. 使用 undo 表空间;5. 使用恢复点。但需...
    99+
    2024-04-18
    oracle
  • oracle中delete drop truncate的用法和区别
          数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢?   比如当数据库空间爆满...
    99+
    2024-04-02
  • MySQL中如何使用undrop来恢复drop的表
    小编给大家分享一下MySQL中如何使用undrop来恢复drop的表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • 关于SQL表中drop table和delete table的区别
    问题:使用阿里云的maxcompute产品发现有中间表的产生,需要删除。 删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,但是在maxcompute产品中尝试时...
    99+
    2023-01-28
    sql表drop table和delete table的区别 sql表drop table sqldelete table
  • 关于SQL表中drop table和delete table的区别
    问题:使用阿里云的maxcompute产品发现有中间表的产生,需要删除。 删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,...
    99+
    2023-01-28
    sql表drop table和delete table的区别 sql表drop table sql delete table
  • oracle delete删除的数据怎么恢复
    通过以下方法可恢复 oracle 中被 delete 删除的数据:从备份恢复:前提是有最新的备份;使用撤销表空间:撤销表空间启用了回滚段保留;使用闪回查询:查看删除前的数据并导出到新表;...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle数据库delete的数据怎么恢复
    oracle数据库中已删除的数据可以通过以下步骤恢复:检查回收站:进入回收站查看已删除的数据,如在则恢复。使用flashback query:在数据不在回收站时使用flashback q...
    99+
    2024-04-18
    oracle 数据丢失
  • oracle表空间恢复
    如果误删除了一个表空间中test的数据文件test.dbf,然后下次重新启动数据库的时候发       数据库不能打开了(open),老是报错:S...
    99+
    2024-04-02
  • Oracle 表和表数据恢复
    1. 表恢复   对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的。   数据表和其中的数据都是可以...
    99+
    2024-04-02
  • SQL语句中删除表数据drop、truncate和delete的用法
    一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test ...
    99+
    2023-08-31
    sql 数据库 sqlserver mysql Powered by 金山文档
  • oracle数据库delete删除的数据怎么恢复
    oracle数据库中删除的数据可以通过以下方法恢复:事务回滚:可还原事务内已删除数据。闪回查询:访问特定时间点已删除的数据。闪回表空间:创建数据库副本,包含已删除数据。日志文件:使用专业...
    99+
    2024-04-18
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作