DUL 恢复简单表测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DUL 恢复简单表测试相关的知识,希望对你有一定的参考价值。

--1. 构造测试数据

SQL> alter database datafile '/oracle/app/oracle/oradata/test/users01.dbf' resize 100m;
SQL> create table ducw.test_dul tablespace users
  2  as
  3  select * from dba_objects;
SQL> select count(1) from ducw.test_dul;
SQL> exit;


--2. 构造DUL使用的控制文件

在control.dul中必须包含SYSTEM表空间的文件信息,以及想UNLOAD的表的表空间文件信息。


SQL> select ts# || ' '|| rfile# || ' '|| name || ' block_size '|| block_size
  2  from v$datafile
  3  /
TS#||''||RFILE#||''||NAME||'BLOCK_SIZE'||BLOCK_SIZE
--------------------------------------------------------------------------------
0 1 /oracle/app/oracle/oradata/test/system01.dbf block_size 8192
1 2 /oracle/app/oracle/oradata/test/sysaux01.dbf block_size 8192
2 3 /oracle/app/oracle/oradata/test/undotbs01.dbf block_size 8192
4 4 /oracle/app/oracle/oradata/test/users01.dbf block_size 8192
4 5 /oracle/app/oracle/oradata/test/users02.dbf block_size 8192


--2.1 DUL控制文件

(python3venv) [[email protected] ~]$ cat control.dul 
0 1 /oracle/app/oracle/oradata/test/system01.dbf block_size 8192
1 2 /oracle/app/oracle/oradata/test/sysaux01.dbf block_size 8192
2 3 /oracle/app/oracle/oradata/test/undotbs01.dbf block_size 8192
4 4 /oracle/app/oracle/oradata/test/users01.dbf block_size 8192
4 5 /oracle/app/oracle/oradata/test/users02.dbf block_size 8192


--2.2 DUL参数文件

(python3venv) [[email protected] ~]$ cat init.dul
#Platform specific parameter  
OSD_BIG_ENDIAN_FLAG=FALSE
OSD_DBA_FILE_BITS=10
OSD_C_STRUCT_ALIGNMENT=32
OSD_FILE_LEADER_SIZE=1
OSD_WORD_SIZE=32
# Size of dul dictionary caches. If one of these is too low startup will fail.
DC_COLUMNS=200000
DC_TABLES=100000
DC_OBJECTS=100000
DC_USERS=100
DC_SEGMENTS=100000
# Location and filename ofthe control file
CONTROL_FILE=/home/oracle/control.dul
# Database blocksize
DB_BLOCK_SIZE=8192
# Using Import to restore the data retrieved 
EXPORT_MODE=TRUE
# Using SQL*Loader to restore the data retrieved 
#EXPORT_MODE=FALSE
# Compatible parameter
COMPATIBLE=10
FILE_SIZE_IN_MB=1000
BUFFER=200000000


--3. 运行DUL

rm *.ctl
rm *.dat
rm *.log
rm *.ddl
rm *.out


--3.1 在DUL运行环境下执行BOOTSTRAP命令,生成字典信息,为UNLOAD做必要的准备。


(python3venv) [[email protected] ~]$ ./dul 
DUL> bootstrap;



--3.2 在DUL运行环境下执行UNLOAD过程:

  1. UNLOAD TABLE owner.table ; 

    1. This will unload the one table definition and the table's data. 

  2. UNLOAD USER user name ; 

    1. This unloads all tables and data for the specified user. 

  3. UNLOAD DATABASE ; 

    1. This unloads all of the database tables available. (except the user SYS). 


DUL>
 
unload table ducw.test_dul;



以上是关于DUL 恢复简单表测试的主要内容,如果未能解决你的问题,请参考以下文章

案例:Oracle dul数据挖掘 非常规对ORACLE 12C CDB数据库进行恢复

学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中

案例:Oracle dul数据挖掘 没有数据库备份非常规恢复truncate删除的数据表

学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中

案例:Oracle dul数据挖掘 磁盘损坏dul提取数据文件中表的数据及l

ORA-01578: ORACLE 数据块损坏 (文件号 4, 块号 1322) ORA-01110: 数据文件 损坏