Consultor Eletrônico



Kbase P27429: Error (9444) indicating that the Master Block has been truncated at startup.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   6/16/2009
Status: Verified

SYMPTOM(s):

Database fails to start with error 9444

bkset: Extent dbname.d1 is below size 314572800. (9444)

FACT(s) (Environment):

No backup ever at all never ever does not exist
This is the only copy of the database ever
Do not have the database creation assets
A development database which is a recent copy of the production database exists
All Supported Operating Systems
Progress/OpenEdge Product Family
OpenEdge Category: Database

CAUSE:

The Master Block appears to have been truncated. Exact cause unknown.

FIX:

IMPORTANT NOTE:

Strongly advise going to backup.

Replacing the .d1 in the steps that follow, will NOT mean that the database can now be put back into production. A dump and load is necessary to re-sync the physical integrity of the database followed by a thorough logical integrity check of every table in the database. The .d1 file has the MASTER and Area blocks (refer to the mvschema utility in the documentation) + data in the remaining space. This data will have to be removed as it is not relevant data to the production database. IF for example, all the data was in the .d1 extent ( = High water mark of the database) then there are no data pertaining to the production database in this baseline.

This case is a very good supporting case for designing the Progress 9.x database structure around STORAGE AREAS and not leaving the structure 'similar' to Progress 8.x databases where 'everything' is in the 'Schema Area'

STEPS:

1.) Take an OS copy of the production database and ALL it's extents as it stands
2.) Check the validity of the production database.st file:
Are all extents accounted for?
Are all extents in the correct location?
3.) Shut the development database down
4.) Replace the development.d1 with the production.d1
5.) Make sure that it is named <dbname>.d1 and that it has the same permissions as the other production database extents.
6.) Run: prostrct unlock dbname
at the prompt: Are you sure you want to skip crash recovery? (6263)
Enter "y" (without the quotes)
7.) Run: proutil dbname -C truncate bi -F
8.) Access the database single user and perform a dump and load operation followed by a complete index rebuild and recompile of the code. Do not forget to dump the sequence current values, SQL Views and User table as appropriate.