Life is DUL without it
DUL支持什么?
DUL支持分区表、索引组织表(IOT)这些选项,支持标准的数据类型及数据结构,具体如下:
支持行链接和行迁移
支持哈希和索引cluster
支持NULL列
支持LONG、RAW,DATE,NUMBER,ROWID
支持多free list group
支持多字节字符集
支持LOB类型列,不过需要注意的是,有LOB类型列的表在做DUL时输出需要为SQL*Loader格式。
DUL有什么限制和危险?
DUL毕竟是一个大小几百K的一个小工具而已,而Oracle功能越来越复杂,也因而有一些是DUL不支持或做的不完备的。前面已经提到,你的数据库可以是启动不了的,但是要Unload的数据的数据文件、数据块是保证是好的,因为DUL在Unload过程中会对数据块做检验,检验读到的数据块是不是块的,是不是属于正确的段。如果发现坏块,DUL会在屏幕显示出错误信息,同时将报错信息写到日志。
DUL不支持多级别安全标签(MLSLABEL),不支持VARRAY,object类型列,也不支持嵌套表。DUL在Unload过程中不会考虑到数据库一致性,它假定所有数据文件中的数据都是已经提交了的,没有了数据一致性的校验DUL实际做的是脏读,这是DUL比较大的缺点。不过关于这一点也是有点好处的,可以用此恢复truncate/drop误操作的表。
DUL的输出格式
以.dmp为输同格式时每表生成一个文件(owner_tablename.dmp),以sql*loader为输出格式时每表生成两个文件(owner_tablename.ctl和owner_tablename.dat)。如果设定了FILE参数,生成的文件名将会为FILEnnn.ext,如果你的操作系统不支持长文件名,FILE参数此时才会用到。