web-dev-qa-db-ja.com

Magentoのインデックスの問題-インデックスを再作成できません

Magento 1.6.2.0ストア内のインデックス管理に問題があります。基本的に、更新することはできません。ステータスにはProcessingと表示されていますが、3週間以上はそのように表示されています。

そして、インデックスを再作成しようとすると、このメッセージが表示されますStock Status Index process is working now. Please try run this process laterですが、後で3週間になりますか?プロセスがフリーズしているように見えますが、再起動の方法がわかりません。

何か案は?

乾杯

17
Marcin

インデックス作成プロセスを開始するたびに、Magentoはロックファイルを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

ロックファイルにより、別のユーザーがインデックス作成プロセスを開始できなくなります。ただし、インデックス作成要求が完了する前にタイムアウトまたは失敗した場合、ロックファイルはロック状態のままになります。それはおそらくあなたに起こったことです。ロックファイルの最終変更日を確認して、現在他の人がre-indexerを実行していないことを確認してから、ロックファイルを削除することをお勧めします。これはあなたを片付けるでしょう

在庫状況インデックスプロセスは現在機能しています。後でこのプロセスを実行してみてください

エラー。その後、インデクサーを1つずつ実行して、それぞれが完了することを確認します。

31
Alan Storm

こんにちは、手動でスクリプトを呼び出しましたか?

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

このコードは、手動でmagentoのインデックスを作成する場合があります。magentoストアに多数の製品が含まれている場合、製品のインデックスの再作成に多くの時間が必要になるため、管理者からインデックス管理に移動すると、いくつかのインデックスが表示されます処理段階このコードは、処理段階を削除してインデックスの準備段階にするのに役立つ場合があります。

または、SSHを使用してインデックスを作成することもできます。インデックス作成も高速です

3
drsndodiya

新しいバージョンのmagento、つまり2.1.3では、次のソリューションを使用する必要がありました: http://www.elevateweb.co.uk/magento-ecommerce/magento-error-sqlstatehy000-general-error-1205-lock -wait-timeout-exceeded

これは、多くのカスタムスクリプトを実行していて、データベース接続が閉じる機会を得る前にスクリプトを強制終了している場合に発生する可能性があります

CLIからMySQLにログインしてコマンドを実行した場合

プロセスリストを表示;

次の出力が得られます

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

| Id |ユーザー|ホスト| db |コマンド|時間|州|情報| Rows_sent | Rows_examined | Rows_read |

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

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

15行セット(0.00秒)

例として6794372コマンドがスリープで時間は3800であることがわかります。これは他の操作を妨げていますこれらのプロセスは、コマンドを使用して1つずつ強制終了する必要があります。

キル6794372;スリープ状態の接続をすべて終了すると、通常どおりに機能するようになります。

2

次の2つの手順を実行する必要があります。

  1. var/locksフォルダーのすべてのファイルを削除
1
Ashwani Panwar

インデックス作成プロセスを開始するたびに、Magentoはロックファイルをvar/locksフォルダーに書き込みます。したがって、uouは2つのステップを実行する必要があります。

  1. Var/locksフォルダーに777のアクセス許可を与える
  2. Var/locksフォルダーのすべてのファイルを削除します。

次に、管理パネルのインデックス管理ページを更新します。楽しい!!

0
Vaibhav Jain