Kbase 18819: Error 43 on an After-Image Extent
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Unverified
SYMPTOM(s):
Error: ** Cannot find or open file <file-name>, errno = <number>. (43)
Error: ** Cannot find or open file db.a1, errno = 2. (43)
CAUSE:
The after-image file(s) cannot be found.
One possible cause is the loss of the disk where one or more of the after-image extent resided.
FIX:
We need to have Progress no longer reference the lost after-image file(s), and create brand new ones in their place.
1) If the two-phase commit is enabled for this database, disable it using:
proutil <db> -C 2phase end
2) Disable after-imaging using:
rfutil <db> -C aimage end
NOTE: The rfutil command may cause a considerable number of errors 43, and the expected message 'After-Image disabled (849)' might be 'drawned' among them. Even if that happens, after-images *will* be disabled after this command completes.
3) Truncate the BI file:
proutil <db> -C truncate bi
NOTE: The error (Cannot find or open file ? .a1) continues to occur.
4) Remove all the AI extents from the structure file:
prostrct remove <db> ai
This step must be repeated as many times as the number of after-image files.
5) Create a new structure file (say: newai.st), containing the location of the new after-image extents.
6) Use prostrct add to add the new after-image extents to the current database. Eg:
prostrct add <db> newai.st
7) Optionally run:
prostrct list <db>
in order to synchronize the database's .st file with the current structure.
8) Backup the database with or mark it backed up:
probkup <db> .....
or
rfutil <db> -C mark backedup
9) Re-enable after-imaging with:
rfutil <db> -C aimage begin
10) Re-enable two-phase commit if disabled in Step 1:
proutil <db> -C 2phase begin