Magento залипла на реиндескации данных
Обратился ко мне человек с просьбой посмотреть что не так с сайтом. Говорит, что не работает.
Зашел в хостинг панель, вижу что сервер включен. Посмотрел доступные порты с помощью nmap - все нужные порты доступны. Главная страница сайта не открывается. Вернее открывается очень долго и безрезультатно, не выдавая никаких сообщений. При этом доступна админ панель magento.
Понимаю, что ре-индексация Category Products
залочила базу.
С помощью stackoverflow.com и какой-то матери удалось вернуть сайт в наш мир.
Для начала останавливаю nginx и php-fpm.
Дальше подключаюсь к базе, которая вертится на амазоновском инстансе, к которому доступа нету, кроме как через mysql клиент. Ввожу:
SHOW ENGINE INNODB STATUS \G;
И вижу кучу, вернее бесконечную череду сообщений о всяких там процессах, которые выполняются или ждут выполнения. Нахожу сектор, похожий на :
-TRANSACTION 11357017, ACTIVE 6768 sec
MySQL thread id 5201363, OS thread handle 0x7f2982e91700, query id 882213399 xxxIPxxx xx.xx.xxx.x user cleaning up
И начинаю гасить все процессы, которые попались под руку командой KILL:
KILL **5201363**;
После каждого KILL смотрю не изменилась ли картина с помощью:
SHOW ENGINE INNODB STATUS \G;
В какой-то момент она изменилась все-таки. Я вздохнул с облегчением и вернулся на сервер, где в свою очередь перешел в папку /var/www/magento_home/shell
(у Вас она может отличаться) и запустил ре-индексацию всего с помощью следующей команды:
php indexer.php reindexall
В этом случае скрипт выполняется с помощью cli
версии php
и его можно обломать в любой момент.
К моему счастью все закончилось успешно и запустив nginx и php-fpm я увидел следующую картину в админке (Index management):
Сайт при этом стал доступен.