мониторинг убитых таблиц

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

мониторинг убитых таблиц

Непрочитанное сообщение weec » 2009-11-04 15:26:29

бывает такаие ситуации когда сервер не в состоянии автоматом залечить поврежденную таблицу, о чем он пишет в *.err лог
есть ли возможность мониторить такие ситуации не глядя в лог?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: мониторинг убитых таблиц

Непрочитанное сообщение zg » 2009-11-04 15:37:07

наверное да, посмотри тут http://mysql.com/products/enterprise/monitor.html

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: мониторинг убитых таблиц

Непрочитанное сообщение weec » 2009-11-04 15:50:57

не то
перефразирую
есть ли какие консольные тулзы для сабжа?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: мониторинг убитых таблиц

Непрочитанное сообщение zg » 2009-11-04 16:08:03

weec писал(а):есть ли какие консольные тулзы для сабжа?
http://dev.mysql.com/doc/refman/5.1/en/ ... table.html

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: мониторинг убитых таблиц

Непрочитанное сообщение ProFTP » 2009-11-04 16:16:26

weec писал(а):бывает такаие ситуации когда сервер не в состоянии автоматом залечить поврежденную таблицу, о чем он пишет в *.err лог
есть ли возможность мониторить такие ситуации не глядя в лог?
вот я писал скрипт который исправляет таблицу, во всех базах

только возможно нужно переделать, напрмиер, проверить все таблицы во все базах на поврежденность, если какая-то поврежденная, то восстановить ее...

Код: Выделить всё

#!/usr/bin/perl


use DBI;


my $db_name = 'mysql';

    # user from db
my   $db_user = 'root';
my   $db_pass = '';
my   $db_type = 'mysql';
my   $db_host = 'localhost';

    my $dbh = DBI->connect(
"DBI:$db_type:database=$db_name;host=$db_host",
        $db_user,
        $db_pass,
        { RaiseError => 1, 
         PrintError => 1 }
    ) || die $DBI::errstr;
    
    

       my $sth = $dbh->prepare(
       'select Db from db'
                             );
        $sth->execute();
   my $loop_data;
    push @{$loop_data}, $_ while $_ = $sth->fetchrow_hashref();    
   
    $sth->finish();
    $dbh->disconnect();

   foreach my $ii( @{$loop_data})  {

my $db_name = $ii->{Db};

    # user from db
my   $db_user = 'root';
my   $db_pass = '';
my   $db_type = 'mysql';
my   $db_host = 'localhost';

    my $dbh = DBI->connect(
"DBI:$db_type:database=$db_name;host=$db_host",
        $db_user,
        $db_pass
      
    );
    
    my $loop_data2 ;

eval {
    #my $loop_data2 = $dbh->selectrow_hashref( 
    #    "show tables", 
    #    { undef }         
    #);
    
       my $sth = $dbh->prepare(
       'show tables' );
            $sth->execute();

#    push @{$loop_data2}, $_ while $_ = $sth->fetchrow_hashref();     
#     $sth->finish();
     
while( my @row = $sth->fetchrow_array ) {

    die "bad table name: $row[0]" unless $row[0] =~ /^[w_]+$/;
    push @{$loop_data2}, $row[0];
    
}     
    
};

if ($@) {
next;
}    
    
    
#    use Data::Dumper;
#    print Dumper($loop_data2);
    
#    return;    
    

#       my $sth = $dbh->prepare(
#       'show tables'
#                             );
                             
                             
                             
 #       $sth->execute();
  #      my $rows;
#while( my @row = $sth->fetchrow_array ) {
#
    #die "bad table name: $row[0]" unless $row[0] =~ /^[\w_]+$/;
    #push @{$rows}, $row[0];
#}
 #       $sth->finish();

        
              foreach $_( @{$loop_data2}) {
                        $dbh->do(qq{REPAIR TABLE $_ },
                                     undef, undef);
              }
              
                #  use Data::Dumper;
                    #  print Dumper($loop_data2);
                      
                    #  return;

    $dbh->disconnect();
    
    
    
    }        
        

    
#    use Data::Dumper;
#    print Dumper($rows);
 
    
# print "@{[%$rows]}\n";
 
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: мониторинг убитых таблиц

Непрочитанное сообщение weec » 2009-11-04 16:22:30

с предварительным анализом все ясно (меня он не интересует)
а вот отмечает ли сам сервер данные о текущих поврежденных таблицах в status-выводах?

думаю если есть автоматические анализаторы таблиц, возможно данные об их работе отображаются не только в лог-файлах

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: мониторинг убитых таблиц

Непрочитанное сообщение ProFTP » 2009-11-04 16:27:23

не видел...

===

интересно, а почему нужно не смотреть .err?

как раз можно смотреть через 1 минуты, по кускам смотреть, если есть ошибки, то справлять...

или меньше минуты, если надо, через 20 сек.- демон написать
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: мониторинг убитых таблиц

Непрочитанное сообщение zg » 2009-11-04 19:02:11

weec писал(а):а вот отмечает ли сам сервер данные о текущих поврежденных таблицах в status-выводах?
только через анализ таблиц
weec писал(а):думаю если есть автоматические анализаторы таблиц, возможно данные об их работе отображаются не только в лог-файлах
автоматом чекаются только InnoDB, для MyISAM есть myisamchk

Код: Выделить всё

       If you are not in the database directory, you can check all the tables
       there by specifying the path to the directory:

          shell> myisamchk /path/to/database_dir/*.MYI
или нужно что-то другое?

если надо отловить, когда запись падает в лог, то юзай

Код: Выделить всё

tail -f /path/to/log | grep чего-нибудь