Re: Tape Drive size for Online 5.0
Posted in 1993
Topics: Storage & Space Management, Migration, Import/Export & Data Conversion
In article <siden.6.0010386F@umi.com> siden@umi.com (Larry Siden) writes:
>In article <15@ghbassett.win.net> ghbassett@ghbassett.win.net (Greg Bassett) writes:
>>From: ghbassett@ghbassett.win.net (Greg Bassett)
>>Date: Fri, 15 Oct 1993 19:26:54 GMT
>>Subject: Tape Drive size for Online 5.0
>
>>We would like to use our 5.0 GB tape drive a an Informix Archive
>>device. We cannot find any documentation that describes a tape
>>size limit, however on our other machine (both ar RS/6000's) the
>>Archive program (tbtape) barfs when tapedev is over 2.0 GB.
>>Has anyone got this working ?? One other idea we had
>>is to is to use dd to backup the raw disk space. Is this a real
>>possibility?
>
>>Any/all ideas/comments are welcome.
>
>The dbexport command limits the value for the -s option to 2 Meg (expressed in
>Kbytes). However, the 5.0 Administrator's Guide does not offer any limit for
>the TAPESIZE configuration parameter that I could find in the index.
The problem with tbtape and the 2gig limit is an interaction between
the way tbtape writes to the device and limits imposed by the operating
system. Essentially tbtape does the following:
open()
while not reached tape size in tbconfig file write()
close()
So if you specify a tape size of 5gig tbtape will attempt to write 5gig
between one open()/close() sequence. Unfortunetly most unix operating
systems impose a maximum file size limit of 2gig, the size of a signed
long. After writing 2gig the next write() call fails and tbtape aborts.
What are your options?
1. Live with the 2gig limit. Specify a tape size of 2gig in
tbconfig and use more tapes.
2. Contact your os vendor and see if they can increase the maximum
size of a single file. 4gig is usually possible without much work
because they can use an unsigned long.
3. Contact Informix to see if they can alter the method used by
tbtape to write to the tape device. For example, the following
works on some operating systems:
open()
write, at 2gig limit do lseek() to offset 0.
close()
After writing 2gig perform an lseek() back to offset 0. Since
a tape device is being used this has no effect on the position
on the tape but allows another 2gig to be written to the device.
Of course, this is extremely non portable.
mark