Kbase 16535: How to Go to Index Rebuild SOME After idxbuild Fails
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/05/1998 |
|
Solution ID: 16535
GOAL:
Work-around to make a database restart index rebuild at the menu in order to let you rebuild the index in 'SOME' mode instead of 'ALL'.
SYMPTOM(s):
SYSTEM ERROR: I/O error <n> in <program>, ret <n>, file <n>, addr <n>. (290)
FIX:
It is always recommended to make a backup of your database before you attempt something like this work- around. If you cannot complete the index rebuild process, you must go to a backup of your database.
This might be necessary if your database is very large because a failed index rebuild restarts by default in the rebuild 'ALL' mode without sorting. As a result, the index rebuild can be extremely slow, and on a large database (2 GB and larger) could take days to complete.
When an index rebuild is run in the 'SOME' mode, a file called dbname.xb is created. This file keeps a list of tables and indexes to be rebuilt. If the index rebuild fails, the application looks for the dbname.xb file to restart the rebuild.
If the .xb file is found, the application uses it to continue the index rebuild. Upon successful completion of index rebuild 'SOME', the dbname.xb file is deleted.
If an index rebuild fails, the database is not accessible until a successful index rebuild occurs. You might see the following message with a failed rebuild:
Index reconstruction utility was aborted. Rerun it to completion.(651)
Then, when you restart the index rebuild, you see:
Can't find selected index list file .xb; assuming ALL. (2786)
This second message indicates the rebuild will start in 'ALL' mode without sorting, which (as stated above) can be exceedingly slow.
To force the index rebuild into the menu mode (so you can select 'SOME'), create a dbname.xb (where dbname=name of the database) and put directory with the database. Use "touch dbname.xb" or vi dbname.xb, or your favorite editor to create the file. You do not have to put anything into the file.
Now, when you restart the index rebuild, the following response appears:
Index rebuild utility started (345)
Index reconstruction resumes.
The previous index rebuild was interrupted. This is a new try.
When you see the following message:
**** The following indexes will be rebuilt:
Is this correct? (y
)
answer n (for no) and this will give you the rebuild menu.
Here, you can select 'SOME' and enter table and index names. You still must rebuild all the indexes, but now you can break up the rebuild into smaller pieces and allow sorting.
If you do not select a table here and just put in "!", it will utilize the index list (if available) from the previously aborted idxbuild run.
This can cause your sort file to again hit the 2 gig limit and abort the idxbuild.