Consultor Eletrônico



Kbase P5546: Error (43) when moving DB extents to a different directory
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   27/10/2008
Status: Verified

SYMPTOM(s):

The Database was moved to a different directory.

Error 43 while trying to access the database

** Cannot find or open file db, errno = 2. (43)

FACT(s) (Environment):

All Supported Operating Systems
Progress 6.x
Progress 7.x
Progress 8.x
Progress 9.x
OpenEdge 10.x

CHANGE:

The DB has been moved to a different directory.

CAUSE:

The structure file paths are stored in the DB. If all or some of the extents are moved to a different directory, it will not be possible to access them because the path is pointing to the previous directory.

FIX:

1) Open the .st file and update the directories for the extents.

2) Run the following command to update the structure information:

prostrct repair <db-name> <new-st-file>

Example:

Lets say that your DB extents are located in the directory /disk1/sales/

Your .st file would look like:

#
b /disk1/sales/sports.b1
#
d "Schema Area":6,32 /disk1/sales/sports.d1
#
d "Info Area":7,32 /disk1/sales/sports_7.d1
#
d "Order Area":8,32 /disk1/sales/sports_8.d1


When an extent is moved to a directory named /disk2/sales, it is necessary to modify the .st file to reflect the change:


#
b /disk1/sales/sports.b1
#
d "Schema Area":6,32 /disk1/sales/sports.d1
#
d "Info Area":7,32 /disk1/sales/sports_7.d1
#
d "Order Area":8,32 /disk2/sales/sports_8.d1


Then run the command:

prostrct repair sports sports.st

Once this is done the DB can be accessed.