使用fy_recover_data恢复truncate表的数据

1.      @/home/oracle/FY_Recover_Data.SQL
创建需要的package
[oracle@localhost oradata]$ sqlplus / as sysdba

我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、汤旺ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的汤旺网站制作公司

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 17 00:43:59 2018

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> @/home/oracle/FY_Recover_Data.SQL

Package created.

Package body created.

2.      创建测试数据:
create table scott.test_emp tablespace users as select * from scott.emp;
truncate table scott.test_emp

3.      执行脚本:
注意路径:“/u01/app/oracle/oradata/orcl/”最后的”/”不能缺少
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 := 'TEST_EMP'; --table name

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

  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;

执行完成之后,会看到scott用户下多了表:
SQL> select table_name, tablespace_name from dba_tables where owner = 'SCOTT';

 

TABLE_NAME                             TABLESPACE_NAME

------------------------------ ------------------------------

DEPT                                             USERS

EMP                                              USERS

BONUS                                         USERS

SALGRADE                                   USERS

TEST_EMP$                                 FY_REC_DATA

TEST_EMP$$                              FY_RST_DATA

TEST_EMP                                   USERS

 

7 rows selected.

将TEST_EMP$$插回TEST_EMP

使用fy_recover_data恢复truncate表的数据FY_Recover_Data.sql


参考:http://www.hellodba.com/reader.php?ID=191&lang=cn


网页题目:使用fy_recover_data恢复truncate表的数据
文章位置:http://myzitong.com/article/pipjso.html