How AUL support the partition table's CLOB/BLOB recovery?

Links: http://www.dbatools.net/mydul/aul-lobpartition.html

    When you prepare to do recovery of partitioned table with LOB columns with AUL4, you must modify the LOB index's partition name first in "AULOBJ.TXT". I have thought that the LOB index have the same partition name with table, just as normal local index, and in AUL 4 I use the table's partition name to locate the LOB index's partition to get the relative data object id. But the names are not same, let's start with two demo table :

SQL> CREATE TABLE T_HASHLOB (COL1 NUMBER, COL2 CLOB)
  2  LOB(COL2) STORE AS (DISABLE STORAGE IN ROW)
  3  PARTITION BY HASH(COL1) PARTITIONS 2;

Table created.

    Insert few rows and the perform a checkpoint, and start AUL 4 to unload the dictionary table, and describe the table structure:

AUL> desc anysql.t_hashlob

Storage(OBJ#=0 OBJD=0 TS=0 FILE=0 BLOCK=0 CLUSTER=0)
No. SEQ INT Column Name         Type
--- --- --- ------------------- ----------------
  1   1   1 COL1                NUMBER
  2   2   2 COL2                CLOB  (SYS_IL0000010046C00002$$)

    We could use grep to get the partition name information:

C:\MYDUL>grep -i t_hashlob AULOBJ.TXT
10048,25,T_HASHLOB,SYS_P28,19
10047,25,T_HASHLOB,SYS_P27,19
10046,25,T_HASHLOB,,2

C:\MYDUL>grep -i "SYS_IL0000010046C00002\$\$" AULOBJ.TXT
10054,25,SYS_IL0000010046C00002$$,SYS_IL_P32,20
10053,25,SYS_IL0000010046C00002$$,SYS_IL_P31,20
10052,25,SYS_IL0000010046C00002$$,,1

    Then we modify the partition name of LOB index according to the order of object id:

10054,25,SYS_IL0000010046C00002$$,SYS_P28,20
10053,25,SYS_IL0000010046C00002$$,SYS_P27,20

    Then we can start to recover the rows, just specify the partition name in the "UNLOAD" command :

AUL> set lob_convert 1
  Current LOB_CONVERT is : 1-GBK
AUL> set clob_edian big
  Current CLOB_EDIAN is : BIG
AUL> unload table anysql.t_hashlob partition SYS_P27;
2006-12-25 10:59:01
Unload OBJD=10047 FILE=4 BLOCK=8291 CLUSTER=0 ...
2|part 2
2006-12-25 10:59:02
AUL> unload table anysql.t_hashlob partition SYS_P28;
2006-12-25 10:59:04
Unload OBJD=10048 FILE=4 BLOCK=8299 CLUSTER=0 ...
1|part 1
2006-12-25 10:59:04

    The program becomes more and more complex, really hard to make any change now.

« Previous | Main | Next »

Powered by
Movable Type 5.01