Storage Area Size

bjag

New Member
Greetings!

I have a question about storage area size that I'm hoping someone knows about: From the dbanalys output, which figure should I use to determine how big my storage area is getting: the "Block Analysis" total blocks or highwater mark, or the "Record block summary for area "xxx" "Subtotals" for the total size of all objects within an area?

Or, are there other metrics that would be better to determine the size, in respect to any size limitations within Progress?

Thanks,
Brenda
 
Dear,


Have a look at these code below, it is working well:


/etc/rc.d/rc2.d/sizefile.sh pseudo /pro/data 1700000000
/etc/rc.d/rc2.d/sizefile_fix.sh pseudo /pro/data

sizefile.sh:

# Remove the Temporary File
rm -f /tmp/struct.tmp.$1
rm -f /tmp/sizefile.tmp.$1
# Create a Temporary File with a Structure of Database just to read
$DLC/bin/prostrct list $2"/"$1 /tmp/struct.tmp.$1 >> /tmp/sizefile.tmp.$1
result=$?
if [ "$result" != "0" ]
then
email "Attention! Fail to Check the SIZE EXTENSION FILES of Server: $1" " Fail to Check the SIZE EXTENSION FILES"
fi

# Read the Temp File Line by line at the End, check size of each line
# with awk command
while read LINE
do
# Check if the Extension File is FIXED or VARIABLE
CHKFIX=`echo "$LINE" | awk '{print $5}'`
#echo "$CHKFIX"
if [ -n "$LINE" -a "${LINE:0:1}" == "d" -a "$CHKFIX" == "" ]; then
#echo "$LINE" | awk '{print $4 $5 $6}'
JFIL=`echo "$LINE" | awk '{print $4}'`
#echo $JFIL
SIZE=`ls -l $JFIL |awk '{print $5}'`
#echo "$SIZE"
if [ "$SIZE" -gt $3 ]; then
#echo "Attention! Extension File over than the Limit Size:$3 Bytes $LINE has: $SIZE Bytes"
email "Attention! Extension File over than the Limit Size:$3 Bytes $LINE has: $SIZE Bytes" " Extension File OverSize"
else
echo "$JFIL" " SIZE CHECKED: OK " `date "+%x %X"` >> /tmp/checksize.log.$1
fi
fi
done < /tmp/struct.tmp.$1


Could you send your e-mail to send that particular program to check variable Extension?
 
Or use some script like this:

Code:
DEFINE VARIABLE iUsed AS DECIMAL   FORMAT 'ZZZ,ZZZ,ZZZ,ZZ9' NO-UNDO.
DEFINE VARIABLE iAvail AS DECIMAL  FORMAT 'ZZZ,ZZZ,ZZZ,ZZ9'  NO-UNDO.
FOR EACH _Area NO-LOCK: 
    DISPLAY _Area-name LABEL 'Area Name' WITH 2 COLUMNS. 
 
    FIND _Areastatus WHERE _Areastatus-Areanum = _Area._Area-number NO-LOCK. 
    ASSIGN iUsed = (_AreaStatus-Hiwater - _AreaStatus-Freenum)
           iUsed = iUsed * _Area-blocksize
           iAvail = (_AreaStatus-Totblocks - _AreaStatus-Hiwater - _AreaStatus-Extents +
                     _AreaStatus-Freenum)
           iAvail = iAvail * _Area-blocksize.
 
    DISPLAY _AreaStatus-Totblocks LABEL 'Total Blocks' FORMAT '>,>>>,>>9' 
            _AreaStatus-Extents LABEL 'Extent Blocks' 
            _AreaStatus-Totblocks - _AreaStatus-Hiwater - _AreaStatus-Extents LABEL 'Empty Blocks' 
            _AreaStatus-Freenum LABEL 'Free Blocks' 
            _AreaStatus-Hiwater - _AreaStatus-Freenum LABEL 'Active Blocks' 
            _Area-blocksize LABEL 'Block Size' 
            iUsed LABEL 'Used space' 
            iAvail LABEL 'Avail space' WITH 3 COLUMNS. 
    FOR EACH _AreaExtent OF _Area NO-LOCK: 
        DISPLAY _Extent-path FORMAT 'x(60)'. 
    END. 
END.

HTH,

Casper.
 
Thanks, Rrojo

I had hoped that the figures from the dbanalysis would suffice. Do you really have to run a program just to determine how close your storage area is getting to its limits?

my email is bjagnandan@bbandt.com

Thanks,
Brenda

Dear,


Have a look at these code below, it is working well:


/etc/rc.d/rc2.d/sizefile.sh pseudo /pro/data 1700000000
/etc/rc.d/rc2.d/sizefile_fix.sh pseudo /pro/data

sizefile.sh:

# Remove the Temporary File
rm -f /tmp/struct.tmp.$1
rm -f /tmp/sizefile.tmp.$1
# Create a Temporary File with a Structure of Database just to read
$DLC/bin/prostrct list $2"/"$1 /tmp/struct.tmp.$1 >> /tmp/sizefile.tmp.$1
result=$?
if [ "$result" != "0" ]
then
email "Attention! Fail to Check the SIZE EXTENSION FILES of Server: $1" " Fail to Check the SIZE EXTENSION FILES"
fi

# Read the Temp File Line by line at the End, check size of each line
# with awk command
while read LINE
do
# Check if the Extension File is FIXED or VARIABLE
CHKFIX=`echo "$LINE" | awk '{print $5}'`
#echo "$CHKFIX"
if [ -n "$LINE" -a "${LINE:0:1}" == "d" -a "$CHKFIX" == "" ]; then
#echo "$LINE" | awk '{print $4 $5 $6}'
JFIL=`echo "$LINE" | awk '{print $4}'`
#echo $JFIL
SIZE=`ls -l $JFIL |awk '{print $5}'`
#echo "$SIZE"
if [ "$SIZE" -gt $3 ]; then
#echo "Attention! Extension File over than the Limit Size:$3 Bytes $LINE has: $SIZE Bytes"
email "Attention! Extension File over than the Limit Size:$3 Bytes $LINE has: $SIZE Bytes" " Extension File OverSize"
else
echo "$JFIL" " SIZE CHECKED: OK " `date "+%x %X"` >> /tmp/checksize.log.$1
fi
fi
done < /tmp/struct.tmp.$1


Could you send your e-mail to send that particular program to check variable Extension?
 
Thanks for the program, Casper

I did try it out, but it doesn't appear to run on my system (tried it through the procedure editor, and it bombed on line 5). But, is there no utility already written within Progress (like the dbanalysis utility) that can give this information (i.e. how big is the storage area, and how close is it getting to its limit).

Thanks again,
Brenda


Or use some script like this:

Code:
DEFINE VARIABLE iUsed AS DECIMAL   FORMAT 'ZZZ,ZZZ,ZZZ,ZZ9' NO-UNDO.
DEFINE VARIABLE iAvail AS DECIMAL  FORMAT 'ZZZ,ZZZ,ZZZ,ZZ9'  NO-UNDO.
FOR EACH _Area NO-LOCK: 
    DISPLAY _Area-name LABEL 'Area Name' WITH 2 COLUMNS. 
 
    FIND _Areastatus WHERE _Areastatus-Areanum = _Area._Area-number NO-LOCK. 
    ASSIGN iUsed = (_AreaStatus-Hiwater - _AreaStatus-Freenum)
           iUsed = iUsed * _Area-blocksize
           iAvail = (_AreaStatus-Totblocks - _AreaStatus-Hiwater - _AreaStatus-Extents +
                     _AreaStatus-Freenum)
           iAvail = iAvail * _Area-blocksize.
 
    DISPLAY _AreaStatus-Totblocks LABEL 'Total Blocks' FORMAT '>,>>>,>>9' 
            _AreaStatus-Extents LABEL 'Extent Blocks' 
            _AreaStatus-Totblocks - _AreaStatus-Hiwater - _AreaStatus-Extents LABEL 'Empty Blocks' 
            _AreaStatus-Freenum LABEL 'Free Blocks' 
            _AreaStatus-Hiwater - _AreaStatus-Freenum LABEL 'Active Blocks' 
            _Area-blocksize LABEL 'Block Size' 
            iUsed LABEL 'Used space' 
            iAvail LABEL 'Avail space' WITH 3 COLUMNS. 
    FOR EACH _AreaExtent OF _Area NO-LOCK: 
        DISPLAY _Extent-path FORMAT 'x(60)'. 
    END. 
END.

HTH,

Casper.
 
Hello again, Casper

OK. Operator error, here - I missed a few lines...my apologies..:blush1:...it works great! Thanks.

Thanks for the program!


I did try it out, but it doesn't appear to run on my system (tried it through the procedure editor, and it bombed on line 5). But, is there no utility already written within Progress (like the dbanalysis utility) that can give this information (i.e. how big is the storage area, and how close is it getting to its limit).

Thanks again,
Brenda
 
One remark: If your last extent in an area is variable, then the available space is no hard limit.
We use this code to detect wether we need to add an extra fixed size extent, we only work with fixed size extents.
We have a script which periodically monitors the area size and filling of the extents. If an extra extent needs to be added we set a flag and add the extent online (10.1B) in the evening.
Real area limits are very unlikely to occur (especially in 10.1B).

Regards,
Casper.
 
Well, that explains it. We do use the variable extent, so that particular scenario is not an issue. My issue is exceeding the limit on storage space size, especially the Schema Area. My understanding is that it was 256 GB in Progress V9, and we were coming close to that (I think), as I was using the "BLOCK ANALYSIS" figure (i.e. how many blocks were found in the area, which is 225 GB). We do have a rather large database (287 GB), so we were afraid that we may be getting close to this limitation (and had received error messages/warnings of that). Now that we have gone to V10, it appears that those limits have been raised considerably. However, we were getting the ominous warnings in V10, and our support sill maintains that we are limited to the 256 GB that we were in V9. There's the rub...that's not what the doc says (at least, the doc that I found), nor what you had said. But, we're still clarifying why our support insists that that is the case. Sorry to talk your arm off. THANKS again for your response!

Brenda :D

One remark: If your last extent in an area is variable, then the available space is no hard limit.
We use this code to detect wether we need to add an extra fixed size extent, we only work with fixed size extents.
We have a script which periodically monitors the area size and filling of the extents. If an extra extent needs to be added we set a flag and add the extent online (10.1B) in the evening.
Real area limits are very unlikely to occur (especially in 10.1B).

Regards,
Casper.
 
Back
Top