Salesforce

Errors 4230 10560 or 9447 with a negative offset on a bi file restoring an online backup of a database.

« Go Back

Information

 
TitleErrors 4230 10560 or 9447 with a negative offset on a bi file restoring an online backup of a database.
URL Name000054854
Article Number000175657
EnvironmentProduct: OpenEdge
Version: 11.3.x, 11.4x
OS: All supported platforms
Other: PROBKUP, PROREST
Question/Problem Description
PROREST fails with errors 4230 10560 or 9447 with a negative offset on the bi file.
Online PROBKUP uses the default bibackup active Option.

Active BI clusters above the 32 bit boundary at the time of online backup:
  • If the active portion of the BI is 2GB+, PROREST fails with 9447
  • If the active portion of the BI is 4GB+, PROREST fails with 4230 10560
When PROREST fails with 9447, the restored database can be accessed after crash recovery by truncate bi or starting the broker.
When PROREST fails with 4230 10560, crash recovery fails and the restored database can only be accessed after forced access by skipping crash recovery ( truncate -F) .





 
Steps to Reproduce
Clarifying Information
Backup volume created with an online PROBKUP
Online PROBKUP completes without error.
PROREST -vp verifies the backup without error.
When the active clusters of the BI are less than 2GB, restore succeeds without error.
Error MessageSYSTEM ERROR: bkioWrite: Invalid argument write, fd 11, len 16384, offset -4607, file dbname.b1. (9447)
or
Corrupt block detected when attempting to write a block. (4230)
bkRead: Error occurred in area <area num>, block number: <num>, extent: <BI extent num> (10560)
Defect NumberDefect PSC00317988
Enhancement Number
Cause
At the end of restoring an online backup with bibackup active (default for online PROBKUP since 11.3.0), the restore encounters an error when writing out the second block fixing the BI cluster ring only when the active BI clusters at the time of the online PROBKUP exceed 2GB.

The active portion of the BI is not the total size of the .b* files on disk, but the size of the BI files which contain notes from active transactions at the time the online backup volume is created.
  • If the active portion of the BI is 2GB+, PROREST fails with a negative offset in the bkioWrite 9447 for the block and the block is not written at restore time. Subsequent bi crash recovery fixes the issue as only the previous pointer in the bi cluster block is invalid and the remaining restore is instate.
  • If the active portion of the BI is 4GB+, PROREST does not fail with the bkioWrite error, because the offset is positive. Instead it fails with 4230 10560 because the block is overwritten by another block in the BI cluster ring at restore time. Subsequent bi crash recovery therefore fails.



 
Resolution
Upgrade to OpenEdge 11.5 where the active bi cluster chain is properly handled during PROREST.
Workaround
If the PROREST failed with a negative offset in the bkiowrite 9447, the restored database can be accessed by initiating bi crash recovery by accessing the database: truncating the bi, starting the database, single-user.

If the PROREST failed with the corrupt block 4230 10560 errors, if absolutely needed, the restored database can be accessed by forcing in:  proutil dbname -C truncate bi -F

In OpenEdge 11.3, 11.4 add the bibackup all Option when using the probkup online command:

$   probkup online dbname backupname bibackup all 
Notes
Keyword Phrase
Last Modified Date1/7/2019 2:42 PM

Powered by