web/modules/dobby/Dobby/CLI/MiscCommands.pm | 10 ++++++---
web/modules/dobby/Dobby/Reporting.pm | 19 +++++++++++++++---
web/modules/dobby/scripts/check-oracle-space-usage.sh | 2 -
3 files changed, 24 insertions(+), 7 deletions(-)
New commits:
commit 85563a21e26eb2d087c3a847a2712b7e064fc8c5
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Wed Sep 22 16:23:46 2010 +0200
make 'db-control report' report TEMP_TBS statistics
diff --git a/web/modules/dobby/Dobby/CLI/MiscCommands.pm
b/web/modules/dobby/Dobby/CLI/MiscCommands.pm
index a8d33e4..483feff 100644
--- a/web/modules/dobby/Dobby/CLI/MiscCommands.pm
+++ b/web/modules/dobby/Dobby/CLI/MiscCommands.pm
@@ -133,10 +133,14 @@ sub command_report {
my $class = __PACKAGE__;
for my $ts (sort { $a->{NAME} cmp $b->{NAME} }
Dobby::Reporting->tablespace_overview($d)) {
+ $ts->{FREE_BYTES} = $ts->{TOTAL_BYTES} - ($ts->{USED_BYTES} or 0) unless
$ts->{FREE_BYTES};
+ $ts->{USED_BYTES} = $ts->{TOTAL_BYTES} - ($ts->{FREE_BYTES} or 0) unless
$ts->{USED_BYTES};
printf $fmt,
- $ts->{NAME}, $class->size_scale($ts->{TOTAL_BYTES}),
- $class->size_scale($ts->{TOTAL_BYTES} - $ts->{FREE_BYTES}),
$class->size_scale($ts->{FREE_BYTES}),
- sprintf("%.0f", 100 * $ts->{PERCENT_USED});
+ $ts->{NAME},
+ $class->size_scale($ts->{TOTAL_BYTES}),
+ $class->size_scale($ts->{USED_BYTES}),
+ $class->size_scale($ts->{FREE_BYTES}),
+ sprintf("%.0f", 100 * ($ts->{USED_BYTES} / $ts->{TOTAL_BYTES}));
}
}
diff --git a/web/modules/dobby/Dobby/Reporting.pm b/web/modules/dobby/Dobby/Reporting.pm
index da97e7f..077bef8 100644
--- a/web/modules/dobby/Dobby/Reporting.pm
+++ b/web/modules/dobby/Dobby/Reporting.pm
@@ -25,20 +25,33 @@ sub tablespace_overview {
my $dbh = $dobby->sysdba_connect;
my $query = <<EOQ;
-SELECT DT.tablespace_name NAME, DT.extent_management,
- nvl(DFS.bytes,0) FREE_BYTES, nvl(DTS.bytes,0) TOTAL_BYTES,
- nvl((DTS.bytes - DFS.bytes)/DTS.bytes,1) PERCENT_USED
+SELECT DT.tablespace_name NAME, DT.extent_management, DT.contents,
+ DFS.bytes FREE_BYTES,
+ DUS.bytes USED_BYTES,
+ nvl(DTS.bytes,0) TOTAL_BYTES
FROM (SELECT tablespace_name,
SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) DFS,
+ (SELECT u.tablespace,
+ sum(u.blocks* p.value) bytes
+ FROM v\$tempseg_usage u,
+ v\$parameter p
+ WHERE p.name = 'db_block_size'
+ GROUP BY u.tablespace) DUS,
(SELECT tablespace_name,
SUM(bytes) bytes
FROM dba_data_files
+ GROUP BY tablespace_name
+ UNION
+ SELECT tablespace_name,
+ SUM(bytes) bytes
+ FROM dba_temp_files
GROUP BY tablespace_name) DTS,
DBA_TABLESPACES DT
WHERE DFS.tablespace_name (+) = DTS.tablespace_name
AND DTS.tablespace_name = DT.tablespace_name
+ AND DUS.tablespace (+) = DTS.tablespace_name
ORDER BY DT.tablespace_name
EOQ
diff --git a/web/modules/dobby/scripts/check-oracle-space-usage.sh
b/web/modules/dobby/scripts/check-oracle-space-usage.sh
index 71285d4..38cf37d 100755
--- a/web/modules/dobby/scripts/check-oracle-space-usage.sh
+++ b/web/modules/dobby/scripts/check-oracle-space-usage.sh
@@ -16,7 +16,7 @@ export PATH
reportusage() {
# don't report UNDO usage
- /sbin/runuser oracle -c "db-control report" | grep -v UNDO
+ /sbin/runuser oracle -c "db-control report" | egrep -v 'UNDO|TEMP'
}
mailitout() {
Show replies by date