Salesforce

PROREST always sets the enableLargeFiles flag in 10.2B without -keeptargetlfe parameter

« Go Back

Information

 
TitlePROREST always sets the enableLargeFiles flag in 10.2B without -keeptargetlfe parameter
URL NameP164492
Article Number000177688
EnvironmentProduct: OpenEdge
Version: 10.2B, 11.x
OS: All supported platforms
Question/Problem Description
PROREST always sets the enableLargeFiles flag in OE 10.2B.
EnableLargeFiles flag is set for a restored database if the flag was set on the source database the probkup volumes were created from.
Cannot access a PROBKUP taken with Enterprise largefiles enabled error 9818
Steps to Reproduce
Clarifying Information
Restoring a production database PROBKUP with largefiles enabled to a development environment without an Enterprise database license.
PRODB or PROCOPY does not set largefiles flag if the target structure exists without largefiles enabled.
Error MessageOnly Enterprise systems may access a database with large files enabled (9818)
Defect NumberEnhancement OE00196590 / PSC00224048
Enhancement Number
Cause
While this may appear to be a regression since the largefiles feature change in Progress 9.1E and OpenEdge 10.0B++ where:
If the target database of a PROCOPY or PROREST operation exists in any form (even if only as a void database) without the PROUTIL -C EnableLargeFile flag set, the targets large files setting should not be changed after the operation is completed.

This is not a considered a bug, it is however the impact of another bug that was fixed:
Defect OE00187004 / PSC00215895, LargeFiles not enabled by PROREST when the variable extent > 2GB.
 
Before this was fixed, a PROREST results in SYSTEM ERROR: Attempted to exceed maximum size on file <pname>. (10601) when the extent being restored into exceeds 2GB and renders the database inaccessible.

While there are workarounds, the PROEST logic was never-the-less revised in OpenEdge 10.2B in order to prevent this lockout behaviour, which in turn impacts database restores that were taken from databases that already have largefiles enabled.
Resolution
OpenEdge versions prior to OpenEdge 10.2B:

PROBKUP / PROCOPY functionality of databases with largefiles enabled in these versions is described in Article P98733, How do prorest and procopy work with Large File Support?   

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.


OpenEdge 10.2B04 Service Pack and OpenEdge 11.0: 

A new PROREST argument was introduced: -keeptargetlfe

The current default behaviour remains the same in the case where a backup from a database with large files enabled is restored over an existing database that does not have large files enabled (ie largefiles is set on the restored target) unless the new PROREST argument, "-keeptargetlfe" is applied during the restore. In doing so, the resulting restored database will not have large files enabled.


As with the prior OpenEdge 10.2B behaviour, the code does not ensure that a restored target without large files enabled is sized correctly to accept the data from the backup volumes of a database that has large files enabled. The target structure must be sufficiently sized and all extents must be less than 2GB in size, as described in the 'target.st' file prior to the PROREST execution with the keeptargetlfe argument. 

In the event that the target database structure is too small, the behavior of PROREST is unchanged, it exits with an error and the restore must be restarted after deleting the existing restore and modifying the 'target.st' file accordingly.
For further advise on scoping the target structure size, refer to Article P145009, How to find Storage Areas and extent sizes needed for a PROREST?   

The modified PROREST command syntax is as follows:
prorest db-name device-name { -vp | -vf | -list | -keeptargetlfe } [-verbose]

Where:
-keeptargetlfe : restores PROBKUP volumes without enabling large files on the restored target database.


A regression was introduced in later 10.2B Service Packs and later releases to 11.0 as outlined in Article PROREST -keeptargetlfe is not unsetting LARGEFILES flag   

In order to ensure that the largefiles flag is not set on a database, refer to Article P35250, How to tell if proutil -C EnableLargeFiles has been run against a database?   
Workaround
Until OpenEdge 10.2B04 the following can be applied on the database server where prorests are executed,
or if experiencing the regression to this enhancement outlined in Article
000039425, the following Workarounds are advised for restoring probkups taken from databases with largefiles enabled:

OpenEdge 10.2B
Workaround with an ENTERPRISE License:
  • Use an Enterprise database license on the server with the non-Enterprise (eg: Workgroup, Personal, Development) license installed to initially restore the largefiles enabled database.
  • Then PROCOPY the restored database an existing database structure, which will not set the largefiles enabled flag. As the large files feature is not set with PROCOPY, ensure that all extents are < 2GB and sufficient extents exist to contain 'large areas'.
  • Finally, replace the non-Enterprise database license.

OpenEdge 10.2B Workarounds with a non-ENTERPRISE License:

A. Dump the database at source (with the Enterprise license) then Load (with either license) to unset the largefilesenabled flag

B. Use PROCOPY or PRODB instead of PROREST to an existing target structure without largefiles enabled.

C.
Create a new database PROBKUP as follows:

1. On the server with the Enterprise database license, use PROCOPY or PRODB (offline) to an existing target structure where all extents are < 2GB.

2. Verify that the largefiles flag is NOT set in the target database, by running:
$ proutil dbname -C describe
Large Files will not be listed in the Database Features Section

3. Take the PROBKUP and transfer the backup volume(s) to the non-Enterprise server where it can be restored.
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:28 AM

Powered by