欢迎光临
我们一直在努力

使用fy_recover_data恢复truncate表的数据

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

 

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.sql

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

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。