146 lines
6.9 KiB
PHP
146 lines
6.9 KiB
PHP
<?php
|
|
// $Header: /cvsroot/phptsmadmin/phpTSMadmin/htdocs/server.db.php,v 1.12 2009/04/19 04:00:59 wurley Exp $
|
|
|
|
# This page should return all information about tde TSM database.
|
|
|
|
# Required Libraries
|
|
require './common.php';
|
|
|
|
# Database Summary Information
|
|
$blockTitle['db'] = sprintf(_('Database Information for %s (%s) %s.%s.%s.%s'),
|
|
$app['server']->GetStatusDetail('SERVER_NAME'),
|
|
$app['server']->GetStatusDetail('PLATFORM'),
|
|
$app['server']->GetStatusDetail('VERSION'),
|
|
$app['server']->GetStatusDetail('RELEASE'),
|
|
$app['server']->GetStatusDetail('LEVEL'),
|
|
$app['server']->GetStatusDetail('SUBLEVEL'));
|
|
|
|
$blockBody['db'] = '<table class="blockcitem">';
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2 class="titlel">%s</td></tr>',_('Database Summary'));
|
|
$blockBody['db'] .= '<tr><td><table class="result" border=0>';
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('%s DB volumes totaling %sMB (%s%% utilsed).'),'value').'</td></tr>',
|
|
$app['server']->GetDBDetail('PHYSICAL_VOLUMES'),$app['server']->GetDBDetail('AVAIL_SPACE_MB'),
|
|
$app['server']->GetDBDetail('PCT_UTILIZED'));
|
|
|
|
foreach ($app['server']->GetDBDetail('dbvols') as $key) {
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%sMB) (%sMB Free) (%s).'),'value').'</td></tr>',
|
|
$key['COPY1_NAME'],$key['AVAIL_SPACE_MB'],$key['FREE_SPACE_MB'],$key['COPY1_STATUS']);
|
|
|
|
if ($key['COPY2_NAME'])
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%s).'),'value').'</td></tr>',
|
|
$key['COPY2_NAME'],$key['COPY2_STATUS']);
|
|
|
|
if ($key['COPY3_NAME'])
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%s).'),'value').'</td></tr>',
|
|
$key['COPY3_NAME'],$key['COPY3_STATUS']);
|
|
}
|
|
|
|
$blockBody['db'] .= '<tr><td colspan=2> </td></tr>';
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('%s LOG volumes totaling %sMB (%s%% utilsed).'),'value').'</td></tr>',
|
|
$app['server']->GetLogDetail('PHYSICAL_VOLUMES'),$app['server']->GetLogDetail('AVAIL_SPACE_MB'),
|
|
$app['server']->GetLogDetail('PCT_UTILIZED'));
|
|
|
|
foreach ($app['server']->GetLogDetail('logvols') as $key) {
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%sMB) (%sMB Free) (%s).'),'value').'</td></tr>',
|
|
$key['COPY1_NAME'],$key['AVAIL_SPACE_MB'],$key['FREE_SPACE_MB'],$key['COPY1_STATUS']);
|
|
|
|
if ($key['COPY2_NAME'])
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%s).'),'value').'</td></tr>',
|
|
$key['COPY2_NAME'],$key['COPY2_STATUS']);
|
|
|
|
if ($key['COPY3_NAME'])
|
|
$blockBody['db'] .= sprintf('<tr><td> </td><td>'.classValue(_('%s (%s).'),'value').'</td></tr>',
|
|
$key['COPY3_NAME'],$key['COPY3_STATUS']);
|
|
}
|
|
$blockBody['db'] .= '<tr><td colspan=2> </td></tr>';
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('Database REDO log mode %s.'),'value').'</td></tr>',
|
|
$app['server']->GetStatusDetail('LOGMODE'));
|
|
$blockBody['db'] .= '<tr><td colspan=2> </td></tr>';
|
|
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('%s%% database cache hit rate (%s%% cache wait).'),'value').'</td></tr>',
|
|
$app['server']->GetDBDetail('CACHE_HIT_PCT'),$app['server']->GetDBDetail('CACHE_WAIT_PCT'));
|
|
|
|
if ($trigger = $app['server']->GetDBBackupDetail('trigger')) {
|
|
$blockBody['db'] .= '<tr><td colspan=2> </td></tr>';
|
|
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('TSM will automatically backup the database to %s when the logs reach %s%% full.'),'value').'</td></tr>',
|
|
sprintf('<a href="cmd.php?cmd=devclass.info&index=%s&devclass=%s">%s</a>',$app['server']->getIndex(),$trigger['INCRDEVCLASS'],$trigger['INCRDEVCLASS']),
|
|
$trigger['LOGFULLPCT']);
|
|
$blockBody['db'] .= sprintf('<tr><td colspan=2>'.classValue(_('After %s INCREMENTAL backups, a full backup will be performed to %s.'),'value').'</td></tr>',
|
|
$trigger['NUMICREMENTAL'],
|
|
sprintf('<a href="cmd.php?cmd=devclass.info&index=%s&devclass=%s">%s</a>',$app['server']->getIndex(),$trigger['DEVCLASS'],$trigger['DEVCLASS']));
|
|
}
|
|
|
|
$blockBody['db'] .= '</table></td>';
|
|
|
|
# Show our dbbackup graph
|
|
$blockBody['db'] .= sprintf('<td align="right"><img src="image.dbbackuphistory.php?index=%s" /></td></tr>',
|
|
$app['server']->getIndex());
|
|
$blockBody['db'] .= '</table>';
|
|
|
|
# Database Backup Information
|
|
$blockTitle['backup'] = sprintf(_('Database backup information for %s'),$app['server']->getValue('server','name'));
|
|
$blockBody['backup'] = '<table class="result">';
|
|
|
|
if ($app['server']->GetDBDetail('LAST_BACKUP_DATE')) {
|
|
$blockBody['backup'] .= sprintf('<tr><td colspan=6>'.classValue(_('%sMB (%s%%) has changed since the last backup on %s'),'value').'</td></tr>',
|
|
$app['server']->GetDBDetail('BACKUP_CHG_MB'),$app['server']->GetDBDetail('BACKUP_CHG_PCT'),
|
|
tsmDate($app['server']->GetDBDetail('LAST_BACKUP_DATE')));
|
|
|
|
$blockBody['backup'] .= '<tr><td colspan=6> </td></tr>';
|
|
|
|
## Show DB Vols
|
|
$blockBody['backup'] .= sprintf('<tr><td colspan=6>'.classValue(_('%s backups between %s and %s available for TSM DB restore.'),'value').'</td></tr>',
|
|
tsmDate($app['server']->GetDBBackupDetail('count'),'nosec'),
|
|
tsmDate($app['server']->GetDBBackupDetail('first'),'nosec'),
|
|
tsmDate($app['server']->GetDBBackupDetail('last'),'nosec'));
|
|
|
|
$blockBody['backup'] .= sprintf('<tr><td class="titlel"> </td><td class="titlel">%s</td><td class="titlel">%s</td><td class="titlel">%s</td><td class="titlel">%s</td><td class="titlel">%s</td><td class="titlel">%s</td><td class="titlel">%s</td></tr>',
|
|
'SEQ #','DATE','TYPE','DEVICE','VOLUME','LOCATION','STATUS');
|
|
|
|
$counter = 0;
|
|
$lastseries = 0;
|
|
foreach ($app['server']->GetDBBackupDetail('vols') as $volname => $voldetails) {
|
|
if (! is_array($voldetails))
|
|
continue;
|
|
|
|
if ($lastseries != $voldetails['BACKUP_SERIES']) {
|
|
$lastseries = $voldetails['BACKUP_SERIES'];
|
|
$counter ++;
|
|
}
|
|
|
|
$blockBody['backup'] .= sprintf('<tr %s><td> </td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
|
|
($voldetails['STATUS'] == 'InValid' ? 'class="shadow"' : ($counter%2==0?'class="even"':'class="odd"')),
|
|
sprintf('%s-%s-%s',$voldetails['BACKUP_SERIES'],$voldetails['BACKUP_OPERATION'],$voldetails['VOLUME_SEQ']),
|
|
tsmDate($voldetails['DATE_TIME'],'nosec'),
|
|
tsmBackupType($voldetails['TYPE']),
|
|
$voldetails['DEVCLASS'],
|
|
$volname,
|
|
$app['server']->GetVolLocation($volname),
|
|
$voldetails['STATUS']);
|
|
}
|
|
|
|
$blockBody['backup'] .= '<tr><td colspan=4> </td></tr>';
|
|
|
|
} else {
|
|
$blockBody['backup'] .= sprintf('<tr><td colspan=6>%s</td></tr>',_('It looks like you have NOT yet run a TSM backup.'));
|
|
}
|
|
|
|
|
|
if ($app['server']->GetDBDetail('BACKUP_RUNNING') == 'YES')
|
|
$blockBody['backup'] .= sprintf('<tr><td colspan=6>%s</td></tr>',_('Database backup IS currently running.'));
|
|
else
|
|
$blockBody['backup'] .= sprintf('<tr><td colspan=6>%s</td></tr>',_('Database backup is NOT currently running.'));
|
|
|
|
$blockBody['backup'] .= '<tr><td colspan=6> </td></tr>';
|
|
$blockBody['backup'] .= '</table>';
|
|
|
|
# End
|
|
render_page($blockTitle,$blockBody);
|
|
?>
|