Salesforce

How to PROBKUP a database larger than 2Gb to disk files?

« Go Back

Information

 
TitleHow to PROBKUP a database larger than 2Gb to disk files?
URL Name17530
Article Number000123117
EnvironmentProduct: Progress / OpenEdge
Version: 8.x, 9.x / 10.x, 11.x, 12.x
OS: All supported platforms
Other: Backup
Question/Problem Description
How to PROBKUP a database larger than 2Gb to disk files?
How to PROREST a database larger than 2Gb to disk files?
How to restore a Progress backup larger then 2Gb?
How to configure a multi-volume input file for probkup?
How to configure a multi-volume input file for prorest?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
The PROBKUP Volume Size (-vs) parameter specifies the backup volume size in database blocks.  It is only specified it once when issuing the PROBKUP command and therefore relates to every resulting backup volume. If the Volume Size parameter is not specified, PROBKUP assumes there is no limit (REF Article 000020279) and writes a single backup volume until completion or until the volume (tape or available disc space or user limit) is full. When the volume is full, PROBKUP prompts for the next volume. So the size of the total database must be considered so that there is enough pre-allocated disk space defined in order to avoid the following PROBKUP prompt, which will hang the backup process waiting for input:

     Please enter next device/file name or type "quit" to Exit.

It is therefore advisory to provide this information in an input file in order that the PROBKUP does not hang waiting for this input should a PROBKUP volume exceed the current available space unexpectedly. Specifying the backup size may require some experimentation in order to get it right under all circumstances.  Additional entries can be added to the "backedup" file to accommodate unexpected backup sizes.  For example an online PROBKUP that includes a larger than usual BI file. There is no harm in specifying more entries in the "backedup" file than are currently needed,  as long as when they are needed, they are available as valid file locations and these file locations have sufficient disk space to accommodate the –vs specified.  

The sample "backedup" file that follows is then needed with both the PROBKUP and PROREST utilities. Upon successful operation, PROBKUP stops taking input from the "backedup" file when all database blocks have been backed up. Similarly, upon successful operation, PROREST stops taking input from the "backedup" file when the entire database has been restored.  

Create a file named “backedup” using vi or any other text editor:

This file should contain a list of the backup files and their location on disk. A sample file looks like:

     /usr1/dbpart2
     /usr1/dbpart3
     /usr1/dbpart4
     /usr1/dbpart5
     /usr2/dbpart6

 
To automatically backup the database to a disk-based file larger than 2 GB in size:
    
1) Create a file named testbackedup.

For a database with an 8KB blocksize:
probkup dbname /usr1/dbpart1 -vs 262144 < backedup

For a database with a 4KB blocksize:
probkup dbname /usr1/dbpart1 -vs 524288 < backedup

2) Change the file permissions so that it can be executed:
         chmod +x testbackedup

3) Run testbackedup from an PROENV command prompt so that the necessary DLC and PATH environment variables are set:
testbackedup
 To automatically restore the Database from the 2GB+ disk-based file, use:
prorest dbname /usr1/dbpart1 < backedup

 
To automatically restore the Database a second time from the 2 GB+ disk-based file (thus overwriting the original database) the "backedup" file must include the "y" character to answer the overwrite prompt "<dbname> already exists. Do you want to over write it? [y/n]:" as follows:

     y
     /usr1/dbpart2
     /usr1/dbpart3
     /usr1/dbpart4
     /usr1/dbpart5
     /usr1/dbpart6

 
As previously mentioned, it is possible to back up a Progress database using PROBKUP to a single backup volume (disk file) that is larger than 2 GB, or multiple volumes with the appropriate –vs parameter. This can only happen when the file system, disk, ulimit or quotas allow the creation of files larger than 2 GB however. These 2 GB+ files may not be portable to other file systems if these file systems do not handle files larger than 2 GB, so the database will not be restorable from them. The limitation for the size of backup files is set by the operating system or file system. For these portability reasons, Progress recommends not creating backup volume files larger than 2 GB without due consideration.

When writing to Tape, the file size limitation is on the length of the tape. When the database backup volumes are longer than the tape, -vs must be used. This was the original intention of the -vs parameter.

Examples showing the influence of using the appropriate –vs parameter:

Example 1: The backup fails, because there are not enough backup volumes defined for the -vs specified:

$ cat backedup
./p1
./p2
./p3

$ probkup dbname ./p0 -vs 50000 < backedup
The last backup was not completed successfully. (1553)

538457 active blocks out of 570938 blocks in dbname will be dumped. (6686)
0 bi blocks will be dumped. (6688)
The blocksize is 8192. (6994)
Backup requires an estimated 4.1 GBytes of media. (9285)
11 volumes are required. (6692)
Restore would require an estimated 538457 db blocks using 4.1 GBytes of media. (9286)

Please enter next device/file name or type "quit" to exit: #./p1
Please enter next device/file name or type "quit" to exit: #./p2
Please enter next device/file name or type "quit" to exit: #./p3

Please enter next device/file name or type "quit" to exit:
Backup failed due to EOF during next output device request. (5057)
!!! ERROR - Database backup utility FAILED !!! (8563)

$ ls -l p*
total 4217504

-rw-r--r--   1 root     system    409439232 Apr 02 09:38 p0
-rw-r--r--   1 root     system    409439232 Apr 02 09:38 p1
-rw-r--r--   1 root     system    409439232 Apr 02 09:39 p2
-rw-r--r--   1 root     system    409439232 Apr 02 09:41 p3

 
Example 2: The backup completes, using the same definition for the backup volumes, but increasing –vs appropriately:
 
$ cat backedup
./p1
./p2
./p3

$ probkup dbname p0 -vs 262144 < backedup

The last backup was not completed successfully. (1553)

538457 active blocks out of 570938 blocks in dbname will be dumped. (6686)
0 BI blocks will be dumped. (6688)
The blocksize is 8192. (6994)
Backup requires an estimated 4.1 GBytes of media. (9285)
3 volumes are required. (6692)
Restore would require an estimated 538457 db blocks using 4.1 GBytes of media. (9286)

Please enter next device/file name or type "quit" to exit:

Please enter next device/file name or type "quit" to exit:

Backed up 538457 db blocks in 00:01:15
Wrote a total of 15835 backup blocks using 4.1 GBytes of media. (13625)

Backup complete. (3740)

$ ls -l p*

-rw-r--r--   1 root     system   2147453952 Apr 02 09:45 p0
-rw-r--r--   1 root     system   2147453952 Apr 02 09:46 p1
-rw-r--r--   1 root     system    115592192 Apr 02 09:46 p2
Workaround
Notes
Keyword PhraseGb,file,PROBKUP,rw rw,Progress,rw,backup,p,Database,blocks,backedup
Last Modified Date12/23/2021 3:42 PM

Powered by