Может у кого есть сабж? интересует на perl\bash.
Ну или может кто может написать "за пиво".
Скрипт под рутом должен получить список всех бд, пройтись по всем базам, проверить все таблици, и если нужно отремонтировать их и оптимизировать (в идеале скрипт должен запускаться с параметрами, т.е. например параметр -o означает оптимизацию таблици, если необходимо, -r ремонт таблици, -u пользователь под которым входить в mysql, -p его пароль.)
ремонт и оптимизация mysql таблиц.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании 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/
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: ремонт и оптимизация mysql таблиц.
Код: Выделить всё
#!/usr/bin/perl
# email: rtyug@ukr.net
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};
my $dbh = DBI->connect(
"DBI:$db_type:database=$db_name;host=$db_host",
$db_user,
$db_pass
);
my $loop_data2;
eval {
my $sth = $dbh->prepare('show tables');
$sth->execute();
while ( my @row = $sth->fetchrow_array ) {
die "bad table name: $row[0]" unless $row[0] =~ /^[w_]+$/;
push @{$loop_data2}, $row[0];
}
};
next if ($@);
foreach $_ ( @{$loop_data2} ) {
$dbh->do( qq{REPAIR TABLE $_ } );
}
$dbh->disconnect();
}
- xaker1
- сержант
- Сообщения: 204
- Зарегистрирован: 2010-03-10 21:26:33
Re: ремонт и оптимизация mysql таблиц.
Спасибо огромное!