web-dev-qa-db-fra.com

Problème des index Magento - Impossible de réindexer

J'ai un problème de gestion des index dans mon magasin Magento 1.6.2.0. En gros, je ne peux pas les faire mettre à jour. Le statut dit Processing mais il le dit depuis plus de 3 semaines maintenant.

Et quand j'essaye de réindexer, je reçois ce message Stock Status Index process is working now. Please try run this process later mais plus tard, cela fait 3 semaines maintenant? On dirait que le processus est gelé mais je ne sais pas comment redémarrer.

Des idées?

à votre santé

17
Marcin

Chaque fois que vous démarrez un processus d'indexation, Magento écrit un fichier de verrouillage dans le dossier var/locks

$ cd /path/to/magento
$ ls var/locks
index_process_1.lock    index_process_4.lock    index_process_7.lock
index_process_2.lock    index_process_5.lock    index_process_8.lock
index_process_3.lock    index_process_6.lock    index_process_9.lock

Le fichier de verrouillage empêche un autre utilisateur de démarrer un processus d'indexation. Toutefois, si la demande d'indexation arrive à expiration ou échoue avant de pouvoir se terminer, le fichier de verrouillage sera laissé dans un état de verrouillage. C'est probablement ce qui vous est arrivé. Je vous recommande de vérifier les dernières dates modifiées sur les fichiers de verrouillage pour vous assurer qu'une autre personne n'exécute pas le réindexeur pour le moment, puis de supprimer les fichiers de verrouillage. Cela éclaircira votre 

Le processus d'index d'état du stock fonctionne maintenant. S'il vous plaît essayez d'exécuter ce processus plus tard

erreur. Ensuite, exécutez les indexeurs un par un pour vous assurer que chacun d'eux est terminé.

31
Alan Storm

Bonjour Avez-vous appelé le script manuellement, sinon créez un fichier dans votre dossier racine et écrivez-y le code 

require_once 'app/Mage.php';
umask( 0 );
Mage :: app( "default" );
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();

ce code indexe manuellement votre magento. Il arrive parfois que, si votre magasin Magento contient un grand nombre de produits, il vous faudra beaucoup de temps pour réindexer les produits. Ainsi, lorsque vous pourrez accéder à la gestion de votre index depuis l'administrateur, un index sera affiché. étape de traitement il en va peut-être de ce code vous aidera à enlever l’étape de traitement en étape de préparation de vos index.

ou vous pouvez également indexer avec SSH si vous en avez les droits. c'est aussi plus rapide pour l'indexation

3
drsndodiya

Pour les nouvelles versions de magento, c'est-à-dire 2.1.3, je devais utiliser cette solution: http://www.elevateweb.co.uk/magento-ecommerce/magento-error-sqlstatehy000-general-error- 1205-lock-wait-timeout-dépassé

Cela peut se produire si vous exécutez un grand nombre de scripts personnalisés et que vous les supprimez avant que la connexion à la base de données ait la chance de se fermer.

Si vous vous connectez à MySQL à partir de la CLI et exécutez la commande

SHOW PROCESSLIST;

vous obtiendrez la sortie suivante

+ ——— + —————– + —————— + + —————– + ——— + —— + ——- + ————— + +———– + ————— + ———– +

| Id | Utilisateur | Hôte | db | Commande | Le temps | Etat | Info | Rows_sent | Lignes_examinées | Rows_read |

+ ——— + —————– + —————— + + —————– + ——— + —— + ——- + ————— + +———– + ————— + ———– +

| | 6794372 | db_user | 111.11.0.65:21532 | nom_bdd | Sommeil | 3800 | | NULL | 0 | 0 | 0
| | 6794475 | db_user | 111.11.0.65:27488 | nom_bdd | Sommeil | 3757 | | NULL | 0 | 0 | 0
| | 6794550 | db_user | 111.11.0.65:32670 | nom_bdd | Sommeil | 3731 | | NULL | 0 | 0 | 0
| | 6794797 | db_user | 111.11.0.65:47424 | nom_bdd | Sommeil | 3639 | | NULL | 0 | 0 | 0
| | 6794909 | db_user | 111.11.0.65:56029 | nom_bdd | Sommeil | 3591 | | NULL | 0 | 0 | 0
| | 6794981 | db_user | 111.11.0.65:59201 | nom_bdd | Sommeil | 3567 | | NULL | 0 | 0 | 0
| | 6795096 | db_user | 111.11.0.65:2390 | nom_bdd | Sommeil | 3529 | | NULL | 0 | 0 | 0
| | 6795270 | db_user | 111.11.0.65:10125 | nom_bdd | Sommeil | 3473 | | NULL | 0 | 0 | 0
| | 6795402 | db_user | 111.11.0.65:18407 | nom_bdd | Sommeil | 3424 | | NULL | 0 | 0 | 0
| | 6795701 | db_user | 111.11.0.65:35679 | nom_bdd | Sommeil | 3330 | | NULL | 0 | 0 | 0
| | 6800436 | db_user | 111.11.0.65:57815 | nom_bdd | Sommeil | 1860 | | NULL | 0 | 0 | 0
| | 6806227 | db_user | 111.11.0.67:20650 | nom_bdd | Sommeil | 188 | | NULL | 1 | 0 | 0
+ ——— + —————– + —————— + +————— + ——— + —— +——— +————— + ———– + ————— + ———– +

15 lignes dans le jeu (0.00 sec)

Vous pouvez voir à titre d'exemple 6794372 que la commande est sommeil et que l'heure est à 3800. Ceci empêche d'autres opérations Ces processus doivent être tués un par un à l'aide de la commande.

KILL 6794372; Une fois que vous avez tué toutes les connexions en sommeil, les choses devraient recommencer à fonctionner normalement

2

Vous devez faire deux étapes:

  1. supprimer tous les fichiers du dossier var/locks
1
Ashwani Panwar

Chaque fois que vous démarrez un processus d'indexation, Magento écrit un fichier de verrouillage dans le dossier var/locks. Donc, vous devez faire deux étapes:

  1. Donne l'autorisation à 777 aux dossiers var/locks
  2. Supprimer tous les fichiers du dossier var/locks.

Actualisez maintenant la page de gestion des index dans le panneau d'administration. Enjoy !!

0
Vaibhav Jain