本文主要向大家介绍了Oracle数据库之Oracle表恢复(truncate),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

一、模拟truncate操作:

SQL> conn scott/tiger

SQL> select count(*) from t;

COUNT(*)

----------

13

SQL> truncate table t;

二、恢复truncate表的数据

1.下载hellodba的恢复工具到数据库服务器

linux下使用终端,如下:

windows下输入以下网址:

http://www.hellodba.com/Download/FY_Recover_Data.zip

2.解压下载下来的FY_Recover_Data.pck

[oracle@rac1 ~]$ unzip FY_Recover_Data.zip

解压后得到一个文件FY_Recover_Data.SQL

以下3-7步操作均用sys用户执行

3.使用sys用户执行解压后的脚本(我这里解压后的文件在/home/oracle/)

SQL> @/home/oracle/FY_Recover_Data.SQL

这个脚本实际是在sys用户下创建了一个名为FY_Recover_Data的package

4.使用sys用户找出存放truncate表的数据文件路径,下一步会用到这个文件路径

SQL> select file_name from dba_data_files f, dba_tables t where t.owner='SCOTT' and t.table_name='T' and t.tablespace_name = f.tablespace_name;

查得结果是/u01/oracle/oradata/orcl/users01.dbf

5.使用sys用户执行以下操作开始恢复:

declare

tgtowner varchar2(30);

tgttable varchar2(30);

datapath varchar2(4000);

datadir varchar2(30);

rects varchar2(30);

recfile varchar2(30);

rstts varchar2(30);

rstfile varchar2(30);

blksz number;

rectab varchar2(30);

rsttab varchar2(30);

copyfile varchar2(30);

begin

tgtowner := 'SCOTT'; --table owner

tgttable := 'T';  --table name

datapath := '/u01/oracle/oradata/orcl/';    --必须和被truncate表所在的数据文件的目录相同

datadir := 'FY_DATA_DIR';        --oracle中目录的名字,可以修改

Fy_Recover_data.prepare_files(tgtowner, tgttable, datapath, datadir, rects, recfile, rstts, rstfile, blksz);

Fy_Recover_data.fill_blocks(tgtowner, tgttable, datadir, rects, recfile, rstts, 8, tgtowner, tgtowner, rectab, rsttab, copyfile);

Fy_Recover_data.recover_table(tgtowner, tgttable, tgtowner, rectab, tgtowner, rsttab, datadir, datadir, recfile,datadir, copyfile, blksz);

end;

/

注:执行上的SQL产生2个表空间FY_REC_DATA、FY_RST_DATA,还有1个copy文件。

6.使用sys用户把恢复的数据从scott.t$$中插回scott.t表

注:scott.t$$中是scott.t表truncate之前的数据

SQL> insert into scott.t select * from scott.t$$;

13 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from t;

COUNT(*)

----------

13

可以看到被truncate的数据已经恢复。

7.使用sys用户删除恢复时产生的2个表空间及数据文件

SQL> drop tablespace fy_rec_data including contents and datafiles;

Tablespace dropped.

SQL> drop tablespace fy_rst_data including contents and datafiles;

Tablespace dropped.

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

oracle表还原truncate,Oracle数据库之Oracle表恢复(truncate)相关推荐

  1. oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权

    [数据库]20200722_Oracle添加表空间.用户,用户授权 0 2020-07-25 17:00:30 --创建表空间CREATE TABLESPACE aifu --表空间名 aifu LO ...

  2. oracle 表字段顺序_Oracle数据库如何修改表中字段顺序

    Oracle数据库如何修改表中字段顺序 发布时间:2020-07-09 15:53:15 来源:亿速云 阅读:166 本篇文章给大家分享的是有关Oracle数据库如何修改表中字段顺序,小编觉得挺实用的 ...

  3. oracle 定时器时间分区_Oracle数据库之oracle按时间分区以及自动分区

    本文主要向大家介绍了Oracle数据库之oracle按时间分区以及自动分区,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. (1) --- 创建按时间分区的表 create ta ...

  4. oracle tabe unlock_oracle 常用命令-数据库专栏,ORACLE

    第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...

  5. 如何通过dblink truncate远程数据库上的表

    一般情况下,当我们直接truncate一个远程的表的时候,通常会返回如下的错误信息: ORA-02021: DDL operations are not allowed on a remote dat ...

  6. mysql还原数据表的语句_MYSQL数据库常用备份及恢复语句

    备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求. mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件 备份MySQL数据库为带删除表的格式,能够让该备 ...

  7. mysql分库分表事务控制_数据库分库分表之后,你是如何解决事务问题?

    我们需要接受失望,因为它是有限的:我们不会失去希望,因为它是无穷的. 一.概述 随着时间和业务的发展,数据库中表的数据量会越来越大,相应地,数据操作,增删改查的开销也会越来越大.因此,把其中一些大表进 ...

  8. php如何在mysql数据库里创建表_php创建mysql数据库以及数据表

    php创建mysql数据库以及数据表 用php链接到mysqli,成功后利用,mysqli_query()创建数据库以及数据表. $con = mysqli_connect("localho ...

  9. mysql数据库表名大小写敏感_Mysql数据库名和表名的大小写敏感性问题

    导读:一直以来,Mysql数据库名和表名的大小写都是个敏感的问题,困扰着Mysql数据库管理员.在 MySQL 中,数据库和表对应于那些目录下的目录和文件.因而,操作系统的敏感性决定数据库和表命名的大 ...

  10. 提交表单数据到数据库_普通表单不仅适用于数据库

    提交表单数据到数据库 您也可以将类似的规则应用于数据对象类型. (You can apply similar rules to data object types, too.) You probabl ...

最新文章

  1. 学习 Ruby on Rails 真的很爽!
  2. LFS、BLFS、ALFS、HLFS的区别
  3. 深度学习核心技术精讲100篇(十)-机器学习模型融合之Kaggle如何通过Stacking提升模型性能
  4. QT的QItemSelection类的使用
  5. 登录centos虚拟机后显示-bash-4.1
  6. C++|STL学习笔记-map的基本操作(插入,删除,遍历,大到小输出)【仿大佬写法】
  7. Pocket通证POKT锁仓总价值超2.1947亿美元
  8. python 基本数据类型
  9. 大佬对Maven进行深度讲解:什么是Maven?POM.XML如何解读?
  10. alpha-beta 极大极小值剪枝算法
  11. 网络安全(加密技术、数字签名、证书)
  12. 为程序员准备的英语学习资料
  13. 【Python CLI】第三章 控制台输出
  14. 【SDCC 2016现场】数据库/大数据技术实战专场实录(下)
  15. java excel 单元格 斜线_JAVA POI EXCEl单元格内部分字符设置样式 HSSFRichTextString用法...
  16. Python-玩转数据-python网络编程
  17. 熟知ghost参数 恢复系统没烦恼【xpghost】
  18. mybatis运行报错java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
  19. 摄像头8mm可以看多远_监控摄像头有多少种,如何来选型
  20. 全网舆情监测系统功能板块具体详介

热门文章

  1. lucene.NET详细使用与优化详解
  2. python中的数据类型,存储,实现
  3. 统计apache404错误ip并加入iptables防火墙
  4. apache的httpd.conf中文注释
  5. C#完整执行存储过程的代码加实例
  6. SVM的升维解决线性不可分
  7. SQL with(nolock)详解
  8. sql server 2005 时间转化获取年,有一个时间如2009-07-15,现在要分别查出年、月、日,...
  9. 普通视图和物化视图区别
  10. java token生成和验证_SpringBoot集成JWT生成token及校验方法过程解析