Consultor Eletrônico



Kbase 16928: Probkup of Database fails.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   6/19/2006
Status: Unverified

FACT(s) (Environment):

UNIX

SYMPTOM(s):

Probkup of Database fails.

SYSTEM ERROR: write to <backup device> failed, errno = <code> (1049)

Backup failed due to EOF during next output device request. (5057)

2GB file limitation with PROBKUP to disk: errno 22 (1049)

CAUSE:

PROGRESS's PROBKUP utility is capable of backing up a 2GB+ DB to tape, in increments of 2GB or less. However, when backing up this same DB to a disk-based file it will error out if not provided with the next volume name by hand or by script when required.

If the errno code maps to the EINVAL mneumonic(usualy errno 22), and the block number is 2097151, this indicates that PROGRESS has hit this 2GB file size limitation.

Some UNIX operating systems do not support the creation of files larger than 2GB in size by default.

FIX:

To resolve this problem split the backup operation into multiple files using the PROBKUP -vs parameter.

However, if the block size is smaller than 2097151, the backup should succeed.

Other UNIX operating systems do support the creation of files larger than 2GB in size. This does not mean however that Progress will create a backup file greater that 2GB. Within Progress, the largest single file size that can be created is 2GB.

NOTE: Non-Progress backup files larger than 2GB may not be portable to other systems which are not configured for such files.

Digital UNIX and IBM AIX are two of the UNIX operating systems that support files greater than 2GB in size. Even though these operating system might support files larger than 2GB, this feature MUST be enabled within the operating system. For example, AIX 4.3.2 not only requires that file size definitions be set system wide, but it also requires them to be set at the directory level where the 2GB+ files will reside. The reason for doing this may be in relation to creating
non-Progress backup files with an OS or 3rd party backup utility.

Below is an alternative option that ONLY works for UNIX systems (however, this is NOT a Progress supported method):
Set up a named pipe, backup your Progress DB to this named pipe using PROBKUP, then use gzip/compress on the output file.
Note that the same 2GB rule also applies here to Progress files.

$ mkfifo /tmp/db_fifo
$ probkup {path to db} /tmp/db_fifo -red 5 > /dev
ull 2>&1 &
$ gzip -9 -c < /tmp/db_fifo > DB.gz
-- or --
$ compress < /tmp/db_fifo > DB.Z

The following scenario could easily happen due to UNSUPPORTED usage of named pipes combined with PROBKUP:

In order to save diskspace someone could be writing to a UNIX named pipe with a gzip reading from the other end.
This first seems to work fine but after a while PROBKUP may return:

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

In this situation PROBKUP is halted in writing to the PIPE and therefore thinks the media is full.