Consultor Eletrônico



Kbase P98733: How prorest and procopy works with Large File Support?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   17/03/2011
Status: Verified

GOAL:

How to restore a backup from database with EnableLargeFile on?

GOAL:

Can I disable large file processing for a database.

GOAL:

Is there a proutil command to disable large file processing?

GOAL:

Can EnableLargeFiles be turned off?

GOAL:

How prorest and procopy works with Large File Support?

GOAL:

How procopy and prorest handle Large File Support?

GOAL:

What changed on Progress 9.1E regarding Large File Support?

GOAL:

What changed on OpenEdge 10.0B regarding Large File Support?

GOAL:

How to unset the EnableLargeFiles status of a database?

GOAL:

How to disable large files

GOAL:

Is there a way to disable large files?

GOAL:

How to restore a largefile enabled database to a development environment ?

FACT(s) (Environment):

Progress 9.1E
OpenEdge 10.0B
OpenEdge 10.1x
OpenEdge 10.2x
All Supported Operating Systems

FIX:

There is no corresponding command to disable large file processing for a database once it has been enabled. Moreover, once large file processing is enabled for a database, the database cannot be accessed by Progress Versions prior to 9.1C and is only ever 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, even when the target database structure in a procopy or prorest operation exists, the resulting database?s large file processing state is still set to match that of the source database after the operation is completed. The only method to unset the large file enabled flag on the database is to perform a dump and load against these versions.

Since Progress 9.1E and OpenEdge 10.0B++,
- 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 target?s large files setting will not be changed after the operation is completed.
- 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 prorest or procopy 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 the bi file is larger than 2GB. Please refer to the restore method below to ensure these backups can be restored to an environment without largefile support.

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.

This change was made to allow the designer of a database to be able to pre-determine the databases large file status, rather than the procopy or prorest function. In effect, this change allows the procopy or prorest methods to un-set the EnableLargeFiles status of a database.

PROREST Example:

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 server license in Progress 9.1E and OpenEdge 10.0B or later:

[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]
5. Edit the database structure file 'dbname.st' to use extents less than 2GB and to reflect the full pathnames of their new location (ie where they're restored to). If this information is not available, please refer to Solution P145009, "How to make a new .st file based on prorest -list information from the probackup file" It is important that the target database structure (being restored into) is sufficiently sized to accept the backup volumes, ie that the variable extents do not need to exceed 2GB.
6. Create a void database structure using -blocksize if the backed up database was different than the default blocksize (1K Unix, 4K Li.nux/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, "prorest dbname dbname1.bak" and manually enter the next volume for restore at the prompt.

The resulting database will no longer be large-file enabled.

PROCOPY example:

· Shutdown and truncate PRODUCTION database
· Make a <NewDb>.st file #as in step 5 above
· Prostrct create <NewDb> <NewDb>.st -blocksize <nnnn>
· Procopy <PROD> <NewDb> #make very sure that nothing touches the production database while PROCOPY is being run

For OpenEdge 10.2B, please refer to Solution P164492, "PROREST always sets the enableLargeFiles flag in OE 10.2B"


NOTE:
- The above example is for progress backups. It is not possible to unset largefiles with database backups restored from OS or non-Progress backup utilities.
- Since OpenEdge 10.1C, the proutil -C describe command can be run to verify this..