7 x 24 在线支持!
DUL an Oracle database scavenger tool
DUL an Oracle database scavenger tool
Sometimes something goes really wrong with a database or a filesystem, and suddenly the precious data can no longer be found, it looks gone. In most cases standard recovery procedures will solve the problem. In rare cases recovery also fails and all that is left are the broken damaged pieces. What most people do not realize is that the database or the filesystem is typically not wiped out, it is inaccessible, but most data is unharmed. DUL is a tool that is able to retrieve the remaining data from the smallest snippets that are still available. The smallest element accepted is an Oracle database block. It can work with corrupted files systems, ASM disk groups, parts of datafiles, it will use the dictionary if usable for DUL (even an older backup of the dictionary works most data is relative static). Most Oracle features supported. There is also functionality to mine damaged exp and expdp dumpfiles.
Help Needed or Questions?
Unsure how to proceed? Questions? Or do you have the feeling that not all data was recovered? That data was
missed out somehow? Feel free to ask and we will see what can be done.
There are various ways to get help:
Most important features
RDBMS versions supported from as early as 6.0.34 up to the latest production software
Standalone program written in C
Platform independent, cross platform unloading fully supported
Output in SQL*Loader (stream or fixed record) or export format
DUL will not dump or crash however bad its input is
All normal datatypes including adt's, varrays and clobs, blobs, cfiles and bfiles
Direct reads of datafiles on asm, no asm instance needed
Unexp and unpump commands to recover data from corrupted dump files
Retrieve data from corrupt not mounted filesystems (scan device, create block index)
Parts of data files as small as a single block
Easy of configuration through datafile/disk header inspection
Recover data from an accidentally truncated table
Restrictions
11g secure file lobs are not supported yet.
Label security
Encryption
11g ASM with variable extent sizes and ASM striping support is available on request in a beta
Asm disks on exadata cells (no idea how to read those efficiently yet)
Complex types not supported in export_mode
The generated dump file in export_mode=true contains minimal create and insert statement to allow the
table to load, metadata not included.
Rdbms Internals Knowledge
For best results it is advised you have a good understanding of some rdbms internals. For instance rdbms
bootstrap process, dictionary contents, object id vs data object id, absolute and relative file numbers, extent maps in
segment headers, datafile headers, data block layout, kcbh header and trailer, table and row directory, row header.
DUL is only a tool, you will provide the solution. Any references to training material or source code will be listed on
the internals page .
Dumping and Patching
As DUL needs a very good understanding of block layout, it was a small step to add dumping (originally for
debugging), and from there it was easy to add data block patching. If you are going to patch you must realize that its
typically much harder in reality than you think it will be before you start. If you do not know how it should look like, if
you do not really understand what you are changing, do not even think about trying, but ask for assistance. Please do
not gamble with a customer database. You must never try to patch, do it in full confidence or not at all. If you still
want to know how to do it, read the dumping and patching page for tips.
Constant Improvement
Team Collaboration
DUL
As each new version of the rdbms brings tons of new feature, DUL is behind by nature. Some features are so
important that they will be added automatically, sometimes they are added on demand. Feel free to ask.
Other Wiki pages
my DUL ToDo List.
The WIKI suggests to have a shortcuts/links page.
Unloading a truncated table has a description of a complex unload of a truncated table.
unpump an expdp dump file
A block index is a feature to work with data on corrupted file systems or disk groups.
Operating System Dependent Parameters
newlines in SQL*Ldr mode and other loading issues
asm example tips and tricks
Change Log
DUL 10.2.0.5.3 fixed overflow in row count > 4G
DUL 10.2.0.5.2 improvements in unpump, salvage data from a problematic datapump dump file.
Trivia
The first versions only generated SQL*Loader output. Originally DUL meant Direct UnLoader as a counterpart of
SQL*Loader's direct load capability. But this name made the false impression of a tool designed for speed, and as
a result it was used in benchmarks against competitors, to show how quick we could unload data from a database.
As this was not in line with the intentions, the name was changed to Data recovery UnLoader. Today that has been shortened to Data UnLoader.
The name DUL is to be pronounced as dull, and yes that means boring. It is a kind of a twist, see it as a nom deguerre, a war name, a name taken in a dangerous situation.