Consultor Eletrônico



Kbase 17530: How to PROBKUP a database larger than 2Gb to disk files?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   21/01/2009
Status: Verified

GOAL:

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

GOAL:

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

GOAL:

How to restore a Progress backup larger then 2Gb?

GOAL:

How to configure a multi-volume input file for probkup?

GOAL:

How to configure a multi-volume input file for prorest?

FACT(s) (Environment):

All Supported Operating Systems
Products / Versions

FIX:

The -vs option allows you to specify the backup size in database blocks. The size of the total database must be specified large enough so that there is enough pre-allocated disk space defined within the script, thus the following Progress prompt is avoided:

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


Specifying the backup size might require some experimentation in order to get it right under all circumstances. If you simply want to be safe, you can put additional entries in the "backedup" file.
The sample "backedup" file that follows is used with both the PROBKUP and PROREST utilities.

There is no harm in specifying more entries in the "backedup" file than are needed, as long as if they are needed, they are available as valid file locations and these file locations have sufficient disk space. Upon successful operation, PROBKUP stops taking input from the "backedup" file when you run out of database to backup. In addition, upon successful operation, PROREST stops taking input from the "backedup" file when the entire database has been restored. This procedure also works for PROBKUP online.

Create a file named backedup using vi or your favorite 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
/usr1/dbpart6
Take these steps to automatically backup the database to a disk-based file larger than 2 GB in size:
1) Create a file named testbackedup using vi or your favorite text editor.
A sample file looks like:

probkup yourdb /usr1/dbpart1 -vs 1000 < backedup 2) Change the file permissions so that it can be executed:
chmod +x testbackedup 3) Run testbackedup at the command prompt:

testbackedup
To automatically restore the Database from the 2GB+ disk-based file, use:

prorest yourdb /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
]:" as follows:
y
/usr1/dbpart2
/usr1/dbpart3
/usr1/dbpart4
/usr1/dbpart5
/usr1/dbpart6
NOTE: Although it is not intentional, it is possible to back up a Progress database using PROBKUP to a single disk file that is larger than 2 GB. This can only happen when the file system or disk allows the creation of files larger than 2 GB however. Refer to Progress Solution 16928 for more details.

These 2 GB+ files might not be portable to other file systems if these file systems do not handle files larger than 2 GB, and you will not be able to restore from them. The limitation for the size of backup files is set by the operating system or file system. Progress recommends that you do not create backup files larger t.han 2 GB.

When using -vs to create multiple backup files, the individual files should not exceed 2 GB. PROBKUP fails if this is the case. The 2 GB limitation of file size does not apply when you write to tape. The limitation there is the length of the tape.

If the database is longer than the tape, -vs should be used. This was the original intention of the -vs parameter.

Here are some test runs on a 2 Gig database:
1.) The backup fails, because we do not have enough backup volumes defined for the -vs specified:
$ cat backedup./p1
./p2
./p3

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

111158 active blocks out of 111166 blocks in yourdb will be dumped. (6686)
0 bi blocks will be dumped. (6688)
The blocksize is 8192. (6994)
Backup requires an estimated 869.5 MBytes of media. (9285)
12 volumes are required. (6692)
Restore would require an estimated 111294 Database blocks using 869.5 MBytes 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:

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

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-rw-rw- 1 test ts 81890304 Mar 23 18:00 p0
-rw-rw-rw- 1 test ts 81890304 Mar 23 18:00 p1
-rw-rw-rw- 1 test ts 81890304 Mar 23 18:00 p2
-rw-rw-rw- 1 test ts 81890304 Mar 23 18:00 p3 2.) The backup completes, using the same definition for the backup volumes, but increasing -vs: $ cat backedup
./p1
./p2
./p3

$ probkup yourdb p0 -vs 100000 < backedup
The last backup was not completed successfully. (1553)

111158 active blocks out of 111166 blocks in yourdb will be dumped. (6686)
0 bi blocks will be dumped. (6688)
The blocksize is 8192. (6994)
Backup requires an estimated 869.4 MBytes of media. (9285)
2 volumes are required. (6692)
Restore would require an estimated 111284 Database blocks using 869.4 MBytes of media. (9286)

Please enter next device/file name or type "quit" to exit:
Backed up 111158 Database blocks in 00:01:59
Wrote a total of 3273 backup blocks using 869.4 MBytes of media. (9284)

Backup complete. (3740)
$ ls -l p*
total 5363016

-rw-rw-rw- 1 test ts 819153920 Mar 23 18:03 p0
-rw-rw-rw- 1 test ts 92474368 Mar 23 18:03 p1
.