Salesforce

How to perform unattended backups for databases with capacities larger than the tape/file capacity?

« Go Back

Information

 
TitleHow to perform unattended backups for databases with capacities larger than the tape/file capacity?
URL NameP10318
Article Number000151524
EnvironmentProduct: Progress
Version: 8.x, 9.x
Product: OpenEdge
Version: 10.x, 11.x, 12.x
OS: All supported platforms
Other: PROBKUP
Question/Problem Description
How to backup databases that are larger than the tape/file capacity
How to perform unattended backups to multiple tapes/files
Automating PROBKUP to Multiple Tapes/files
How to manipulate the tape when Progress (using a PROBKUP) asks for the next tape/file
How to perform unattended backups for databases with capacities larger than the tape/file capacity?
How to avoid SYSTEM ERROR: write to <device-name> failed, errno = 6 (1049) when the end of the tape is reached ?
How to backup to volumes PROBKUP -vs
How to PROBKUP database > 2GB to specific volume sizes ?
How to define a multi-volume for PROBKUP
Steps to Reproduce
Clarifying Information
Error MessagePlease enter next device/file name or type "quit" to exit
Defect Number
Enhancement Number
Cause
Resolution
Progress 9.1B and earlier will not create backup files larger than 2 Gb. 
Since Progress 9.1B, the PROBKUP utility can create files on disk that are larger than 2Gb, if large files are supported by:
  1. The operating system and 
  2. The file system to which the backup files are directed. 
The Progress database does not have to be largefiles enabled to achieve this.  The limitation of filesize is entirely operating system, filesystem or userlimit related. Linux platforms are an exception: on this platform, the 2Gb limit on PROBKUP was lifted in OpenEdge 10 and later.

Implementation of a multi volume backup needs to be considered for two reasons:

1.  To limit the backup volume size with the -vs parameter
  • A backup volume is about to exceed the capacity of the largest backup media available to that user 
  • When backing up the database, it will span more than one tape or file capacity
  • The resulting 2 GB+ backup volumes cannot be restored if they are not be portable to other file systems or if these file systems do not handle files larger than 2 GB. 
2.  To provide the next backup volume location when the first volume size has been reached, or when the current volume is no longer writable.

When PROBKUP process asks for the next backup volume, it simply waits for confirmation that it can proceed:
Please enter next device/file name or type "quit" to exit:

At this point, until either a different file name or a device name is indicated, all online transaction processing will stall.  Manually entering the next device or switching tapes is not always possible as this process is (usually) unattended.

To manipulate the tape or specify the next file, it is necessary to automate scripts so that it is not necessary to manually enter the key strokes needed to continue with the backup procedure. Arranging the unattended load of the next media is discussed in this Article. It is recommended that this procedure is fully tested and documented prior to implementing it into a production environment.

To assist in automating this procedure, the "next device" for the backup volume to be written to can be entered in a text file and redirected into the PROBKUP procedure as follows:

$   PROBKUP dbname /dev/dbname.01.bak -vs n < input.file

Where:

dbname: is the database name

/dev/dbname.01.bak: is where the first backup volume is created

-vs: is a parameter that indicates the backup volume size expressed in the number of database blocks that can be written to each volume.
  • Units are in in database blocks, not in bytes.
  • In Progress 7 and earlier versions, the default block size on the OS dictated the database block size, hence the OS blocksize was the database blocksize. 
  • In Progress 8 and later versions, with the introduction of variable block sizes the -vs parameter value references the database block size. 
  • In the case of tape devices, the -vs value should be set lower than the size of the tapes that are being used and greater than the blocking factor (-bf) depending on the database block size and the number of Storage Areas in Progress 9 and above. 
  • In the case of files to disk, the -vs value should be set to the considered available physical file size of the backup volume divided by the database block size, not exceeding user or file limits and preferably not exceeding 2GB.
input.file: When the first tape or volume size (when backing up to a file to disk) has been filled, a next device/file name is supplied by a text file and can be as simple as a one line entry. There is no harm and it is recommended to have more than one 'next device/file name' defined in the event another volume is needed or the next device specified cannot be accessed for some reason.

CAUTION: If the same device name is entered without changing tapes, the backup will be overwritten. It is therefore also necessary to change tapes or enter a different device name that has been prepared for the remaining portion of the backup. 

The input file structure:
  • The 'input.file' can use any naming convention adopted by a sites DR plan
  • The first device/file name is provided on the command line when executing the PROBKUP utility initially and is not included in this file.
  • The location of the next devices are written in the text file where a hard return must be included at the end of each line entry in order to continue. 
After the initial PROBKUP volume has been written (/dev/dbname.01.bak), when PROBKUP process asks for the next volume the input file will provide the next location to the PROBKUP utility so that it can proceed, without stalling the database.

Example: Multi-Volume PROBKUP 

$ PROBKUP online dbname /dev/dbname01.bak -vs 500000 < input.file
  • The database needs 3.5GB of backup media which includes both the bi and the data files in the case of an online PROBKUP.
  • The database blocksize = 4KB
  • -vs 500000 will create backup volumes up to 2000000 KB
  • The input.file provides the next backup volume locations and an additional location if needed:
/dev/dbname.02.bak  <CRLF>
/dev01/dbname.03.bak  <CRLF>
quit <CRLF>
 <CRLF>

When the PROBKUP has completed, the following backup volumes are created:
  • /dev/dbname01.bak 2,048,000,000
  • /dev/dbname02.bak 1,710,096,384
  • /dev07/dbname03.bak Was not be created as it was not needed.  Should it eventually be needed, it is already in place.
  • quit When a backup volume destination becomes either unwritable or run out of disk space unexpectedly. This would trigger a further prompt for a next device: "Please enter next device/file name or type "quit" to exit". While an online PROBKUP cannot write, all OLTP is unexpectedly stalled.  While an offline PROBKUP cannot write it will stall, preventing next access to the database (example, startup scripts after offline backup). To circumvent this condition a "quit" is added after the last device which will then terminate the online backup should all the 'next devices' be suffering the same condition.
To verify the multivolume PROBKUP 

Online PROBKUP volumes can be verified with -vp and offline PROBKUP volumes with -vf.

$  PROREST dbname /dev/dbname01.bak [-vp|-vf] < input.file

For further information refer to Article: To restore the multivolume PROBKUP 

The exact reverse methodology is employed to restore:

$   prorest dbname /dev/dbname01.bak  -vs n < input.file

When restoring over an existing database, a "y" yes prompt will need to be added to the "input.file" to automate the response.
 
Workaround
Notes
Keyword Phrase
Last Modified Date12/23/2021 3:39 PM

Powered by