The Block Index feature, support for corrupted file systems and disk groups
You can even unload a database that has no data files anymore.
A block index is a way to unload from any corrupted file system or disk. It will work for asm disk groups, but also for
unix file systems. The idea is that even if the file system structures are damaged, such a disk can contain a lot of
good database data blocks.
During a scan the whole disk or raw device is inspected, and a list of all blocks found is stored in a so called block
index.
If there are multiple databases it can be difficult to determine which blocks belong to which database.
Anyway if you encounter such a situation contact me for assistance, there is a sound basis of code, but maybe
additions are needed.
steps to create and use a block index
Make sure that the following parameters are set for your database:
compatible
db_block_size
start with an empty control.dul
you have to create a block index for each of the raw devices/disks on which the asm disks or file system
lived. For each device/disk do:
DUL> create block index data1 on /dev/oracleasm/disks/P_DATA01;
DUL> create block index data2 on /dev/oracleasm/disks/P_DATA02;
during the scan for every database db_name and db_id are printed, this gives an idea of how many
databases there were.
add these block indexes to the control.dul:
block index data1
block index data2
There is no need to add the datafiles in the control.dul, the information to find the data is already in the block
indexes.
restart DUL, bootstrap and unload procedures are unchanged.