Ломание таблиц в РНР
Всем добрый.....
Форум РНРВВ, база MySQL, тип MyISAM. 5 месяцев все было нормально, потом начали ломаться таблицы (определение хостера), вплоть до полного отключения форума. Через РМА все восстановил, но теперь приходится несколько раз в день проводить оптимизацию, т.к. из-за дефрагментации перестают работать некоторые важные функции форума. Вопросы: как избежать постоянных дефрагментаций (из-за чего они происходят)? может ли эта проблема быть по вине хостера? |
|
вот у меня тоже стала наблюдаться регулярно эта проблема ломания таблиц. Как можно профилактику провести?
|
Surround, простого рецепта, помимо указанного Sham, нет. Я могу лишь добавить несколько пояснений:
Фрагментация: Любая MyISAM база со временем фрагментируется. Это особенности её архитектуры и её ахиллесова пята — даже единичный row может быть размазан по десятку мест. За MyISAM, увы, пока нужно просто следить как за ребёнком-аутистом. Коррупция: 1. Не является обязательно прямым следствием фрагментации. 2. В подавляющем большинстве случаев ломаются только индексы, что упрощает процедуру восстановления. 3. Из неестественных причин коррупции — главным можно назвать убийство/рестарт демона во время записи (напрямую или вследствие некорректного рестарта системы). Поищите в логе ошибок restarted mysqld, может ваш хостер перезагружается как неандерталец. 4. Реже причиной является модификация таблицы внешней программой (скажем, myisamchk) во время модификации её демоном. 5. Ещё реже причиной являются железные проблемы — память и диск. 6. Довольно редко — сочетание кривого кода и старой, с коррумпирующими багами, версии MySQL. 7. Крайне редко — просто безумный код. Это основные моменты и факторы, на которые следует обратить внимание в профилактическом смысле. Оперативное лечение — по рецепту Sham выше. |
ну оперативное решение - это понятно. Просто неприятно, что оно возникает и возникает регулярно.
Началось на форуме на vBulletin. На сервере есть еще БД, на них такого не наблюдалось ниразу... |
А можно ли установить скрипт у хостера, который автоматически проводит оптимизацию через определенный промежуток времени? Если да, то есть ли готовые решения?
|
можно. и запускать по cron (многие хостеры предоставляют такую фишку)
например, код такой: PHP код:
|
Время: 21:45. |
Время: 21:45.
© OSzone.net 2001-