мониторинг убитых таблиц
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
- Контактная информация:
мониторинг убитых таблиц
бывает такаие ситуации когда сервер не в состоянии автоматом залечить поврежденную таблицу, о чем он пишет в *.err лог
есть ли возможность мониторить такие ситуации не глядя в лог?
есть ли возможность мониторить такие ситуации не глядя в лог?
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: мониторинг убитых таблиц
наверное да, посмотри тут http://mysql.com/products/enterprise/monitor.html
- weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
- Контактная информация:
Re: мониторинг убитых таблиц
не то
перефразирую
есть ли какие консольные тулзы для сабжа?
перефразирую
есть ли какие консольные тулзы для сабжа?
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: мониторинг убитых таблиц
http://dev.mysql.com/doc/refman/5.1/en/ ... table.htmlweec писал(а):есть ли какие консольные тулзы для сабжа?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: мониторинг убитых таблиц
вот я писал скрипт который исправляет таблицу, во всех базах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";
- weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
- Контактная информация:
Re: мониторинг убитых таблиц
с предварительным анализом все ясно (меня он не интересует)
а вот отмечает ли сам сервер данные о текущих поврежденных таблицах в status-выводах?
думаю если есть автоматические анализаторы таблиц, возможно данные об их работе отображаются не только в лог-файлах
а вот отмечает ли сам сервер данные о текущих поврежденных таблицах в status-выводах?
думаю если есть автоматические анализаторы таблиц, возможно данные об их работе отображаются не только в лог-файлах
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: мониторинг убитых таблиц
не видел...
===
интересно, а почему нужно не смотреть .err?
как раз можно смотреть через 1 минуты, по кускам смотреть, если есть ошибки, то справлять...
или меньше минуты, если надо, через 20 сек.- демон написать
===
интересно, а почему нужно не смотреть .err?
как раз можно смотреть через 1 минуты, по кускам смотреть, если есть ошибки, то справлять...
или меньше минуты, если надо, через 20 сек.- демон написать
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: мониторинг убитых таблиц
только через анализ таблицweec писал(а):а вот отмечает ли сам сервер данные о текущих поврежденных таблицах в status-выводах?
автоматом чекаются только InnoDB, для MyISAM есть myisamchkweec писал(а):думаю если есть автоматические анализаторы таблиц, возможно данные об их работе отображаются не только в лог-файлах
Код: Выделить всё
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 чего-нибудь