Dashboard > СУБД > Home > Мониторинг тэблспэйсов в Oracle средствами Munin > Information > Сравнение Страницы
  СУБД Вход | Зарегистрироваться   Вариант для печати.  
  Мониторинг тэблспэйсов в Oracle средствами Munin
Ключ
Эти линии были удалены. Это слово было удалено.
Эти линии были добавлены. Это слово было добавлено.

Просмотреть историю страницы


there.are.num.changes

 Вывод сделан в процентном соотношении, ибо мониторить сколько конкретно мегабайт/гигабайт там сейчас - в данном случае бесполезно и ненаглядно, а когда близко к тому, чтобы вырости до сотни (процентов) и стать "полочкой" - значит пипец близок. И все наоборот, когда нужно вести мониторинг размера тэблспэйсов безотносительно, в абсолютных величинах. Но это уже другой случай.
  
 {noformat}
 #!/usr/bin/perl
 use DBI;
  
  
 sub connect_oracle {
 $ENV{'ORACLE_HOME'} = "/oracle";
 $ENV{'NLS_LANG'} = "AMERICAN_AMERICA.CL8KOI8R";
 $ENV{'LANG'}='ru.KOI8-R';
 $ENV{'NLS_DATE_LANGUAGE'}='AMERICAN';
 $ENV{'NLS_NUMERIC_CHARACTERS'}='.,';
 $ENV{'TZ'} = "KSK-4KSD";
 my $data_source=' свой дата соурсе для оракела';
 my $d=DBI->connect($data_source,'логин','пароль',{RaiseError => 0, PrintError =>1, AutoCommit => 1});
 return $d;
 }
  
  
 my $dbh=&connect_oracle();
  
 my $TITLE='Oracle tablespaces usage';
 my $param=$ARGV[0];
 if ($param eq "autoconf") {exit;}
  
  
  
 my $sth = $dbh->prepare("
 select a.tablespace_name,
 ROUND((round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024, 2)/round(a.bytes_alloc / 1024 / 1024, 2))*100,2) pct
 from ( select f.tablespace_name,
 sum(f.bytes) bytes_alloc,
 sum(decode(f.autoextensible, 'YES',f.maxbytes,'NO', f.bytes)) maxbytes
 from dba_data_files f
 group by tablespace_name) a,
 ( select f.tablespace_name,
 sum(f.bytes) bytes_free
 from dba_free_space f
 group by tablespace_name) b
 where
 a.tablespace_name = b.tablespace_name
 and ROUND((round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024, 2)/round(a.bytes_alloc / 1024 / 1024, 2))*100,2)>=1
 order by pct desc");
 $sth->execute;
  
 if ($param eq "config")
 {
 my $period=`${graph_period}`;
 print "graph_order in\n";
 print "graph_title $TITLE\n";
 print "graph_args --base 1024\n";
 print "graph_vlabel usage (percent)\n";
 print "graph_category oracle\n";
 while (my ($tablespace_name, $pct)=$sth->fetchrow_array())
 {
 print "$tablespace_name.label $tablespace_name\n";
 print "$tablespace_name.min 0\n";
 }
 exit;
 }
  
 while (my ($tablespace_name, $pct)=$sth->fetchrow_array())
 {
 print "$tablespace_name.value $pct\n";
 }
  
  
 my $rc = $sth->finish;
 $rc = $dbh->disconnect;
 {noformat}
   
  
 Картинка рисуется примерно такая:
 !oracle_tablespaces_usage-day.png!
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5 Build:#805 Apr 26, 2007) - Запрос Bug/feature - Связаться с администраторами