Salesforce

How do prorest and procopy work with Large File Support?

« Go Back

Information

 
TitleHow do prorest and procopy work with Large File Support?
URL NameP98733
Article Number000141620
EnvironmentProduct: Progress
Version: 9.1E
Product: OpenEdge
Versioin: 10.0B, 10.1x, 10.2x, 11.x, 12.x
OS: All Supported Platforms
Other: largefiles feature
Question/Problem Description
How do PROREST and PROCOPY work with Large File Support?
How to restore a largefile enabled database to a Development environment ?
How to restore a backup from a database with EnableLargeFile enabled?
How to unset the EnableLargeFiles status of a database?
How to disable largefile on a database without dump and reload ?
Is there a PROUTIL command to disable the largefiles feature?
Can EnableLargeFiles be turned off?
Can I disable large file processing for a database?
What changed on OpenEdge 10.0B regarding Large File Support?
What changed on Progress 9.1E regarding Large File Support?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
There is no corresponding command to disable large file processing, or more specifically the largefiles feature for an Enterprise database once it has been enabled. Moreover, once large file processing is enabled, the database cannot be accessed by Progress Versions prior to 9.1C and can only ever be enabled with an Enterprise database license installed.

In Progress 9.1C (where proutil -C enablelargefiles was introduced to the product), Progress 9.1D and OpenEdge 10.0A:
  • The resulting database’s large file processing state is still set to match that of the source database after the PROCOPY or PROREST operation has completed.
  • Even when the target database structure in a PROCOPY or PROREST operation exists with the large files feature enabled, the source database’s large file processing state will be maintained. 
  • When the source database has the large file feature enabled, it will fail when a WorkGroup or Personal database license is installed with: Only Enterprise systems may access a database with large files enabled (9818) 
  • The only method to unset the large file enabled flag on the database is to perform a dump and load against these versions.

Progress 9.1E and OpenEdge 10.0B++ 

Since Progress 9.1E, OpenEdge 10.0B and later, alternatives to disabling Large File Support can be realised with PROCOPY or PROREST utilites:
  • If the target database of a PROCOPY or PROREST operation exists in any form (even if only as a void database), the target’s large files setting will not be changed after the PROCOPY or PROREST operation completes.
  • Void databases in these versions may be enabled for large file processing after the PROCOPY or PROREST operation, using the proutil <db-name> -C EnableLargeFiles utility as required.
  • If PROCOPY or PROREST are executed without having a void structure or pre-existing database as the target location, the large file support flag of the source will be maintained with one exception:
If this is an online backup being restored to an environment without a pre-existing database structure, where a variable file extent is larger than 2GB. Please refer to the restore method below to ensure these backups can be restored to an environment without largefile support when needed.

Along with the changes in Progress 9.1E, OpenEdge 10.0B, 10.1A, 10.1B, 10.1C, 10.2A, the "proutil <db-name> -C EnableLargeFiles" utility may also be used to enable large file processing on a void database. 

For OpenEdge 10.2B, the default PROREST behaviour in OpenEdge 10.2B is that when restoring a database backup that has large files enabled, the restored target database will have the largefiles enabled flag set, even if the restore target is a pre-existing database without large files enabled.

In OpenEdge 10.2B04 and OpenEdge 11.0, a new PROREST argument was introduced: -keeptargetlfe
This change was made to allow the designer of a database to be able to pre-determine the database's large file status, rather than the PROCOPY or PROREST function. In effect, this change allows PROCOPY or PROREST methods to un-set the EnableLargeFiles status of a database. For further information refer to Article:
Since OpenEdge 12, large file support is enabled and disabled by default:
  • Opening a database on a system where the Enterprise Database License is installed, if it is not enabled already. 
  • Opening a database on systems running with a sub-enterprise license (Workgroup and Personal) will disable large file support, if it is enabled.
  • The "proutil -C enablelargefiles" utility is decomissioned: This is a retired command and is no longer functional. (19352)
  • It is not possible to disable the largefiles feature when an Enterprise Database licence is used.
  • When restoring large databases to a void structure in a non-Enterprise environment, assure sufficient extents under 2GB are available. Refer to Article  How to find Storage Areas and extent sizes needed for a PROREST?   
For example: Restoring a backup of a large file enabled source database with PROCOPY or PROREST over an existing target database:
  • Will enable large files for the target database where the Enterprise Database License is installed or 
  • Keep the non large files enabled target database where Workgroup or Personal Licenses are installed.

PROREST Example: Prior OpenEdge 12 to assure largefiles are not enabled

The following technique can be used to obtain a PROBKUP copy of a large-file-enabled production database and convert it into a database that does not have large files enable for use with a development environment which uses a WorkGroup license. This method is required in Progress 9.1E, OpenEdge 10.0B up to 10.2B and optional prior to OpenEdge 12.

[PRODUCTION ENVIRONMENT]

1. Shut down the database.
    $  proshut dbname -by

2. Truncate the BI log 
    $  proutil dbname -C truncate bi

3. Perform a backup and take a fresh copy of the database structure
    $  probkup dbname dbname1.bak -vs 250000 < input.file
    $  prostrct list dbname dbname.st


4. Copy the backup volume(s) and 'dbname.st' and input.file to where they need to be restored

[DEVELOPMENT ENVIRONMENT] or non Enterprise Database License Environment.

5. Edit the database structure file 'dbname.st':

It is important that the target database structure (being restored into) is sufficiently sized to accept the backup volumes, ie that the variable area extent will not need to exceed (2GB - (16 x database blocksize)).
6. Create a void database structure using -blocksize if the backed up database was different than the default blocksize (1K Unix, 4K Linux/Windows). ie to match the originating database blocksize
    $  prostrct create dbname dbname.st -blocksize <nnnn>

7a Restore the database into the void structure.
    $  prorest dbname dbname1.bak  -vs 250000 < input.file
Where:
  • -vs and 'input file' are those used during probkup originally.
  • The input file now needs to reflect the location of the backup volumes (copied in step 4).

7b Alternatively, run the restore for the first volume, "prorest dbname dbname1.bak" then manually enter the next volume for restore at the prompt.
 
The resulting database will no longer be large-file enabled.

PROCOPY example: (Progress 9.1E, OpenEdge 10.0B and later)
  • Shutdown and truncate PRODUCTION database
  • Make a <NewDb>.st file as in Step 5 PROREST example above
  • Create a void database with the required blocksize: prostrct create <NewDb> <NewDb>.st  -blocksize <nnnn>
  • procopy <PROD> <NewDb> #make very sure that nothing touches the production database while PROCOPY is being run

The above information applies to Progress utilities (PROBKUP/PROREST and PROCOPY). It is not possible to unset largefiles with database backups restored from OS or non-Progress backup utilities. A dump and load is required.

Since OpenEdge 10.1C, the proutil -C describe command can be run to verify if the large files database feature is enabled or not.  Refer to Article  How to tell if proutil -C EnableLargeFiles has been run against a database?   
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 6:56 AM

Powered by