Consultor Eletrônico



Kbase 3499: .db and .bi Files Get Out of Sync 886 887 888 881 timestamp with Progress 7.x and earlier
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   8/15/2000
Status: Unverified

FACT(s) (Environment):

Progress 6.x

FACT(s) (Environment):

Progress 7.x

SYMPTOM(s):

** Cannot find or open file <file-name>, errno = <number>. (43)

SYSTEM ERROR: The before-image file has the wrong cluster size. (881)

** The database was last used <date/time>. (886)

** The before-image file expected <date/time>. (887)

** Those dates don't match, so you have the wrong copy of one of them. (888)

CAUSE:

Some of the reasons for these messages are:

- Someone backed up the database while there were users in the
database

- Someone started the database using (or not using - if its
usually used) the before-image (BI) file name (-g ) Progress
startup option. As a result, Progress is looking at a new or
the wrong BI file

- Someone deleted the before-image (dbname.bi) file and created a
new file by that name

The errors indicate corruption to the before-image file. The time and date stamps must agree between the before image file and the database file, otherwise Progress cannot open the before-image file.
In addition, the cluster size of the BI file must agree with what the master block of the database expects.

FIX:

If the BI (.bi) file and database (.db) file are out of sync because the Progress lock (.lk) file was deleted while there were users in the database, you can start the database using the Force Access (-F) startup option. The (-F) startup option bypasses the (dbname.bi) file.

NOTE: Any transactions that did not complete prior to the lock (dbname.lk) file deletion are not be backed out of the database. Consequently, the integrity of your database is at stake.

Once you use the (-F) option to open your database, the database is marked. You receive the message:

You must Dump and Load the Database to regain integrity.

An alternative to the dump and reload is to restore from your last backup. If for some critical reason, a backup or dump/load is not an option immediately, take the following steps to gain access to the database until the time when restore or dump/load can be done:

1) At the operating system type:

UNIX/DOS: pro <dbname> -F

/* Force Option is documented in the System
Administrator Guide. */

VMS: PROGRESS/ACCESS=FORCED <dbname>

BTOS: PROGRESS [options] -F <dbname>


NOTE: The use of this option bypasses the before
image recovery, so any transactions that were in
process are not backed out of the database.


2) Quit from the editor back to the operating system.

3) At the operating system type:

UNIX/DOS: proutil <dbname> -C idxbuild

VMS: PROGRESS/UTILITIES= idxbuild <dbname>

BTOS: PROGRESS Utilities <dbname> -C idxbuild


In Progress 6.x, when prompted to build
"some" or "all" indexes, choose "some". When
prompted for the file name, enter: "!" (which
actually bypasses rebuilding any indexes).
The index rebuild process goes through your file,
resets the record manager (rmchain), and resets
the flag that indicates you need to dump and reload
your database.

NOTE: The index rebuild process does not repair the
fact that data integrity may have been affected by
the forced access to the database.