Consultor Eletrônico



Kbase 19771: Roll Forward of PROCOPY conv89 db Fails
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   3/17/2003
Status: Unverified

SYMPTOM(s):

Roll Forward of PROCOPY conv89 db Fails

The database was last changed <date 1>. (831)

** The after-image file expected <date 2>. (832)

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

CAUSE:

The following circumstances will cause an AI roll forward to fail on a conv89 database:

- The initial V8 database does not have any _User records.
- The database was converted using conv89.
- A hot backup of the database was made using PROCOPY instead of PROBKUP.
- The AI files are rolled forward to the PROCOPY target database.

The problem is due to the default SQL DataBase Administrator (SQL DBA) user created in Progress Version 9.1. On creation of the database (from PRODB, PROCOPY or PROSTRCT create), a default SQL DBA user must be created in the database if there is no current SQL DBA defined in the database. This insures that the SQL-92 schema will have a user with DBA privilege if there are no users defined in the database.

The default SQL DBA user is the user who creates the database. This is expected behaviour and is documented in the Progress Database Administration Guide and Reference, Section 8.1 "Establishing Authentication for Your Progress Database"

When conv89 is used to migrate a database from Progress Version 8.x to Version 9.1, the default SQL DBA is not created in the database. The database continues to work well for 4GL access. However, any subsequent PROCOPY or PRODB of this database creates a new database, and, since the source database did not contain a SQL DBA, the default is created.

The AI file rollforward problem arises here when you use PROCOPY instead of PROBKUP to create a backup database. PROCOPY detects there is no SQL DBA in the database. It copies the database (no SQL DBA user) then opens the database and adds the default SQL DBA. This opening of the database means that the last changed date is different from the AI file, so the rollforward will fail with the
errors

FIX:

Use one of the following workarounds to resolve this situation:

- Use PROBKUP/PROREST instead of PROCOPY to create the backup database. Slower, but it works.

- Dump and load the db from V8 to V9. Much slower, but when you PRODB the new V db from empty, a new SQL DBA will be created.

- Procopy the first db, then use this new db. This new db will have the SQL DBA. Subsequent PROCOPY's of this db will not have a new SQL DBA created.

FIX:

References To Written Documentation:
Database Administration Guide and Reference
Section 4.5 "Migrating Version 8 Databases to Version 9 Databases"
Section 8.1 "Establishing Authentication for Your Progress Database"