Окт 19 2008

MySQL — repair таблицы при нехватке места

Случилась беда. Побилась табличка, подключились, втоптали repair table «имя таблицы» и обнаружили что на починку таблицы места не хватает, почистили место, но не тут то было, места по прежнему катастрофически не хватает. Более того, сервер в продакшене и перемещать таблицу в то место где мы можем его починить времени нет.

И после этого родилась такая идея, таблицу, а именно файлы с расширениями MYD, MYI и frm, имя файлов совпадает с именем таблицы, переместил в /var/db/mysql и натравил на него myisamchk -r, myisamchk создал временный файл имя_таблицы.TMD, после этого работу mysamchk оборвал, файл переместил в то место где есть место. Что бы все пошло как надо я поставил симлинку на него и перезапустил myisamchck вот так:

myisamchk -fr имя_таблицы

При этом, по окончании работы myisamchk честно переименовал симлинку в файл имя_таблици.MYD.
Теперь мы можем вернуть все файлы на место, переименовав файл TMD в MYD и расположив его на прежнем месте в директории базы либо так и оставив там поставив из директории базы симлинку на него.

Таким образом мы сэкономили время одного копирования и максимально быстро решили проблему.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By ZyXEL, 09.03.2010 @ 22:37

    Шикааарно:)

    Востановил таблицу после краха по инструкции. Спасибо;)

Other Links to this Post


Украинская Баннерная Сеть