Salesforce

How to use PROSTRCT repair?

« Go Back

Information

 
TitleHow to use PROSTRCT repair?
URL NameP23580
Article Number000134638
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x,11.x
OS: All supported platforms
Question/Problem Description
How to use prostrct repair?
When to run prostrct repair command when extents have been physically moved to another location on disk?
How to move a database from a machine to another?
How to change the location of the database extents?
How to update the location of a database that was copied or moved from one directory to another?
How to update a database that was copied or moved from one directory to another using an operating system command?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
When does PROSTRCT REPAIR need to be run?
  1. When a database is moved or copied to a new file system or location, or database extents need to be moved to disks with more space, so that the directory structure is updated.
  2. To unlock old shared memory references in the database Master block or Before image file(s) point to memory which is now in use by one of the other databases running on the same machine, error "Shared memory in use by another process. (1260)"
What does PROSTRCT REPAIR do?
  • The database structure is written into the Control Area .db file for the database.
  • The structure description file (.st) is the text-file representation of the database structure that is saved in the .db file.
  • The .db file, or database Control Area, acts as a table of contents for the database engine, listing the name and location of every Area and extent in the database.
  • When a database is moved using operating system utilities, the .db file must be updated accordingly.
  • The .db file is updated running prostrct repair.
  • PROSTRCT repair uses a .st file to update the location of extent files.
PROSTRCT REPAIR does not:
  • Initiate crash recovery
  • Disable After-imaging
  • 'Repair' anything but the database structure on disk.

How to run PROSTRCT REPAIR:

1. Run prostrct list to obtain an up-to-date structure file (.st).

Example:
$   prostrct list mydb temp.st

2. Backup the database, using probkup or system utilities.

3. Use Operating System or 3rd Party Software to move the database files to the new locations.

4. Edit the database structure file to reflect the paths to the database files. Change all path references in the .st file to reflect the fully qualified new location paths where the database files will be moved to, or more precisely their fully qualified current locations on disk even if they have not been moved. This is important!

In the above example, edit the temp.st file.

5.  Run prostrct repair using the edited .st file to update the database structure.

Example:
$   prostrct repair mydb modified-temp.st

6. Run prostrct list again to verify the paths to the database files are correct.

Example:
$   prostrct list mydb new-temp.st

It is advised to test the steps first using a copy of sports2000 or sports2020.
Workaround
Notes
References to Written Documentation:

OpenEdge Data Management: Database Administration, Database Administration Utilities:
https://docs.progress.com/bundle/openedge-database-management-117/page/Other-Database-Administration-Utilities.html
Keyword Phrase
Last Modified Date10/10/2023 2:01 PM

Powered by