REPAIR зачем?

seva2

Партнер PHPClub.ru
REPAIR зачем?

REPAIR
Народ не понимаю смысл этой функции что она делает?

И подскажите как ее запустить из пхп скрипта для всех таблиц данной базы, а то все перечислять не охота)

Спасиб
 

seva2

Партнер PHPClub.ru
Как часто стоит запускать? и от чего зависит частота?
 

Solid

Drosera anglica
Когда сломается таблица. Хотя, помоему, легче запустить myisamchk --recover (никогда не чинил InnoDB, а вот MyISAM приходилось... обычно ломаются из-за случайной перезагрузки системы... или слишком большой нагрузки на БД)
 

seva2

Партнер PHPClub.ru
ДЛя профилактики, как часто стоит запускать? У меня очень много запросов!
 

ys

отодвинутый новичок
Автор оригинала: seva2
ДЛя профилактики, как часто стоит запускать? У меня очень много запросов!
Для профилактики стоит запускать CHECK, а REPAIR - это ни разу не профилактика, а уже попытка реанимации...
 

Апельсин

Оранжевое создание
> Хотя, помоему, легче запустить myisamchk --recover

его не легче запустить. более того если нельзя запускать пока сервер запущен. Ну и например делать тоде что и REPAI .. USE_FRM он не умеет.
InnoDB вы им и не почините ..
 

Solid

Drosera anglica
Апельсин
myisamchk :D
Бывало и так, что на MySQL 4.1 повис процесс, kill на него не действовал в прицнипе, прошлось завершать процесс и чинить через эту утилиту.
Хидеры ещё не разу не бились, по этому USE_FRM пока что использовать не приходилось.

-~{}~ 11.01.07 01:57:

PS. Бесспорно бывают всякие случаи... я погорячился, сказав "Хотя, помоему, легче запустить myisamchk --recover"
 

MadMike

Новичок
Solid
Можно более подробно про зависания? Версия, примеры запросов, условия и т.д.?
 

Solid

Drosera anglica
Версия выше. Запросы - не в них дело, там что-то с сервером было... то ли нагрузка большая была, из-за чего там что-то вовремя не закрылось... то ли по какой-то другой причине. В общем уже 3-4 месяца на том сервере всё спокойно...
 

ran

Новичок
Затронули проблему восстановления данных и возник вопрос: InnoDB таблицы подерживают процедуру восстановления данных.
В мануале написано, что 1-м пунктом создания binary backup есть:
Shut down your MySQL server and make sure that it shuts down without errors.
Есть InnoDB Hot Backup утилита, но она не бесплатная и стоит ?390 на сервер.
Нужно делать backup копии вручную или можно как-то настроить сервер mysql на автоматический backup базы, например, один раз в сутки, чтобы в любое время можно было достать базу со всеми данными из нужной копии (своего рода откат изменений на n-дней назад)?
 

Апельсин

Оранжевое создание
ran, во-первых вы все смешали.
Мы говорили о repair данных. У InnoDB вообще другой механизм работы поэтому никаких утилит для починки данных нет вообще. Если же у вас по каким-то причинам попортился tablespace, то тогда запуск MySQL с innodb_force_recovery ваш друг.

Вы можете восстановить данные из бэкапа. То как их восстанавливать зависит от того как вы их бэкапили. Самые распространенные способы пожалуй:
mysqldump + binary logs
ibbackup + binary logs
replication
 

ran

Новичок
Автор оригинала: Апельсин
Вы можете восстановить данные из бэкапа. То как их восстанавливать зависит от того как вы их бэкапили.
Вот это как раз и интересно. Можна ли как-то настроить автоматический бекап базы (какой-то опцией mysql-сервера)? В голову только пришла идея повесить на крон скрипт, который через shell будет вызывать mysqldump. :)
 

Апельсин

Оранжевое создание
> Можна ли как-то настроить автоматический бекап базы (какой-то опцией mysql-сервера)?

нет.
Ну если у вас конечно не репликация :)

> В голову только пришла идея повесить на крон скрипт

так и делают
 

hidden

Новичок
Автор оригинала: Апельсин
> Хотя, помоему, легче запустить myisamchk --recover

его не легче запустить. более того если нельзя запускать пока сервер запущен. Ну и например делать тоде что и REPAI .. USE_FRM он не умеет.
InnoDB вы им и не почините ..
Ага я так как-то запустил на табличке с 7 000 000 записей и он не захотел работать доходил до 400 000 и просил --force сделать.. вот он мне потом восстанавливал часов 5 эту таблицу.
 
Сверху