千家信息网

DUL 恢复简单表测试

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,--1. 构造测试数据SQL> alter database datafile '/oracle/app/oracle/oradata/test/users01.dbf' resize 100m;SQ
千家信息网最后更新 2025年01月21日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 81921 2 /oracle/app/oracle/oradata/test/sysaux01.dbf block_size 81922 3 /oracle/app/oracle/oradata/test/undotbs01.dbf block_size 81924 4 /oracle/app/oracle/oradata/test/users01.dbf block_size 81924 5 /oracle/app/oracle/oradata/test/users02.dbf block_size 8192


--2.1 DUL控制文件

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


--2.2 DUL参数文件

(python3venv) [oracle@sqlaudit ~]$ cat init.dul#Platform specific parameter  OSD_BIG_ENDIAN_FLAG=FALSEOSD_DBA_FILE_BITS=10OSD_C_STRUCT_ALIGNMENT=32OSD_FILE_LEADER_SIZE=1OSD_WORD_SIZE=32# Size of dul dictionary caches. If one of these is too low startup will fail.DC_COLUMNS=200000DC_TABLES=100000DC_OBJECTS=100000DC_USERS=100DC_SEGMENTS=100000# Location and filename ofthe control fileCONTROL_FILE=/home/oracle/control.dul# Database blocksizeDB_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 parameterCOMPATIBLE=10FILE_SIZE_IN_MB=1000BUFFER=200000000


--3. 运行DUL

rm *.ctlrm *.datrm *.logrm *.ddlrm *.out


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


(python3venv) [oracle@sqlaudit ~]$ ./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;



0