Frisch eingetroffen - Artikelauswahl - Server-Fehler

Hallo,

seit gestern habe ich das Problem, dass meine CE 4.6.2 sehr, sehr träge läuft und ich ich zum Schluss einen 500er Server-Fehler erhalte.

Nach einigen Testen bin ich über den MySql-Server gestolpert - msqldumper und phpmyadmin liefen nicht richtig.

Ein Anfrage beim Provider ergab:

auf die Datenbank wurde ein LOCK ausgesprochen, durch Ihre Anwendung. Daher haben sich die MySQL Prozesse aufgestaut und Ihre Webseite hat keinerlei Inhalte mehr angezeigt:
> User:xxxx
> Host: xxxx
> Datenbank: dbxxx
> State: Locked
> Info: OPTIMIZE TABLE `oxobject2category`

Bitte prüfen Sie, wie es dazu kam, da der gleiche Fehler sonst wieder auftreten könnte.

Er hat es irgendwie zurück gesetzt, und der Shop funktionierte wieder.

Nun habe ich neue Artikel für die Startseite “Frisch eingetroffen” auswählen wollen.

Das funktionierte nicht FF hat ewig die Artikel-Auswahl-Seite geladen. Crom hat zwar geladen, ich konnte aber keine Artikel zuordnen.

Jetzt habe ich wieder das oben genannte Problem.

Wo kann ich hier suchen?

PS: Die DB-Tabellen werden täglich vor einem Backup durch mysqldumper optimiert.

mfg

Gert

Hallo,

da der Fehler offensichtlich bei einem Optimierungsversuch aufgetreten ist, würde ich mysqldumper mal laufen lassen, ohne eine tägliche Optimierungsroutine.
Das sollte schon helfen.

Grüße,
Thore

Hallo Thore,

[[email protected];111419]da der Fehler offensichtlich bei einem Optimierungsversuch aufgetreten ist, würde ich mysqldumper mal laufen lassen, ohne eine tägliche Optimierungsroutine.[/QUOTE]
das kann ich ja mal einstellen. Ich schließe das aber aus, da lt. Provider

ja, ein LOCK wurde wieder ausgesprochen. Ich habe den MySQL Dienst soeben wieder neu gestartet.

Und zwischen den 2 Neustarts habe ich eigentlich nur versucht, die Artikel in “Frisch eingetroffen” zu zu ordnen - was so nicht funktionierte…

mfg

Gert

Hmm, da aber in der Fehlermeldung des Providers etwas wie

Info: OPTIMIZE TABLE oxobject2category

als Fehlerquelle o. ä. stand, sehe ich das als deutlichen Hinweis darauf.
Vielleicht liege ich da auch falsch. Einen Versuch ist es allemal wert, denke ich…

Grüße,
Thore

Hallo Thore,

ich habe mysqldumper entsprechend eingestellt. Da ich MySQL nicht schon wieder in die Knie zwingen will, werde ich bis zur einer Lösung, die Einstellung lokal vornehmen und per phpmyadmin einspielen.

mfg

Gert

Hallo,

also ich würde definitiv sagen, dass der Fehler mit der DB-Tabelle “oxactions2article” oder der dazugehörigen Abfrage zu tun hat. Der Fehler lies sich lokal beliebig reproduzieren.

Mangels Fachwissen kann ich nur spekulieren:

  1. Die Zahl der DB-Einträge war zu groß (ca. 10000). Das Google/Yatego-Export-Modul von aggrosoft hat sich hier mit eingetragen.

  2. Da die Nummerierung unter “OXSORT” war nicht sauber, dh.es gab für “oxnewest” merhrere gleiche Nummern und ging auch nicht bei “0” los???

Als Zwischenlösung habe ich die Export-Einträge gelöscht und neu nummeriert.

Also - was kann ich jetzt tun, der nächste Export kommt bestimmt…

mfg

Gert

Hallo,

auf meine Anfrage hat mir mein Provider mitgeteilt:

| 37817 | OXuser | xxxxxx::35698  | dbxxxx | Query   | 15217 | Sending data | select  oxv_oxarticles_de.oxartnum as _0,  IF( oxv_oxarticles_de.oxtitle != '', oxv_oxarticles_de.oxtitle, CONCAT((select oxart.oxtitle from oxv_oxarticles_de as oxart where oxart.oxid = oxv_oxarticles_de.oxparentid),', ',oxv_oxarticles_de.oxvarselect)) as _1, oxv_oxarticles_de.oxean as _2, oxv_oxarticles_de.oxid as _6  from oxobject2category left join oxv_oxarticles_de on  ( oxv_oxarticles_de.oxid=oxobject2category.oxobjectid or oxv_oxarticles_de.oxparentid=oxobject2category.oxobjectid)  where oxobject2category.oxcatnid = 'o6250dc7135a5b0bedf34d5811a720d5' and oxv_oxarticles_de.oxid not in ( select oxactions2article.oxartid from oxactions2article  where oxactions2article.oxactionid = 'oxnewest' and oxactions2article.oxshopid = 'oxbaseshop' )  group by oxv_oxarticles_de.oxid  order by _0 asc  limit 5000, 2500                                                                                                                                                                                                             |

| 37858 | OXuser | xxxxxx:36115  | dbxxxxx | Query   | 15022 | Sending data | select  oxv_oxarticles_de.oxartnum as _0,  IF( oxv_oxarticles_de.oxtitle != '', oxv_oxarticles_de.oxtitle, CONCAT((select oxart.oxtitle from oxv_oxarticles_de as oxart where oxart.oxid = oxv_oxarticles_de.oxparentid),', ',oxv_oxarticles_de.oxvarselect)) as _1, oxv_oxarticles_de.oxean as _2, oxv_oxarticles_de.oxid as _6  from oxobject2category left join oxv_oxarticles_de on  ( oxv_oxarticles_de.oxid=oxobject2category.oxobjectid or oxv_oxarticles_de.oxparentid=oxobject2category.oxobjectid)  where oxobject2category.oxcatnid = 'o6250dc7135a5b0bedf34d5811a720d5' and oxv_oxarticles_de.oxid not in ( select oxactions2article.oxartid from oxactions2article  where oxactions2article.oxactionid = 'oxnewest' and oxactions2article.oxshopid = 'oxbaseshop' )  group by oxv_oxarticles_de.oxid  order by _0 asc  limit 0, 2500        

kurz vor der E-Mail liefen die Queries bereits 15217 bzw. 15022 Sekunden,
sprich über 4 Stunden.

Die beiden Queries müssten entsprechend einmal untersucht warden, warum diese so lange laufen.

Ansonsten wird das Problem früher oder später wieder auftreten.

Den MySQL-Server habe ich soeben neugestartet.

Was kann ich hier unternehmen?

PS: Dies läuft z.Zt. mit einer CE 4.6.2. Ich versuche eine Demo mit dieser DB auf dem gleichen Server auf zu setzen…

mfg

Gert