Probleme beim Import großer Datenmengen

Hallo,

ich habe ein Problem mit dem Artikelimport in meinen oxid eshop Community Edition 4.2.0_23610 . Ich will ca. 100.000 Artikel hochladen, die größte Menge, die ich aber bisher in einem Schwung geschafft habe, sind 200 Datensätze, d.h. ich wäre noch ziemlich lange mit dem zerstückeln und hochladen der Datei beschäftigt. Die Fehlermeldung, die ich erhalte, lautet:

Fatal error: Out of memory (allocated 32768000) (tried to allocate 35 bytes) in /homepages/9/d114621870/htdocs/shop3/core/oxbase.php on line 1261

Auf dem 1und1-Server ist noch genügend Speicherkapazität vorhanden und auch der Platz der MySQL-DB ist bei weitem noch nicht ausgeschöpft.
Manchmal kommt aber auch gar keine Meldung auf dem Bildschirm und wenn ich dann in die DB sehe, sind manchmal keine und manchmal ein paar Artikel dazu gekommen.

Ich hoffe, mir kann jemand helfen, so dass ich die nächsten 3 Monate nicht mit dem hochladen von Artikeln zubringen muss.

Vielen Dank

Cathleen

Kannst du in der php.ini unter memory_limit mehr Speicher zuweisen? Ansonsten den Provider kontaktieren.

Mal so nebenbei…was ist dass für ein Shop mit 100.000 Artikeln? Ich habe meine 17000 Artikel per CSV importiert. Hat zwar ein paar Stunden gedauert aber dafür alles fehlerfrei. Such mal im Forum nach einem D3 Import Modul. Glaube dass könnte auch was für Dich sein.

Ansonsten mache ich Dir gerne ein Angebot und jage die Artikel etc. hoch.
Melde Dich einfach per PN .

[QUOTE=roland76;25801]Kannst du in der php.ini unter memory_limit mehr Speicher zuweisen? Ansonsten den Provider kontaktieren.[/QUOTE]

Soweit ich weiß wird das memory_limit vom Provider aus gesteuert. in der php.ini kannsde eingeben was du willst…bringt nix.

Wenn du Zugriff auf die php.ini hast (Rootserver), dann kannst du diesen Parameter auch ändern.

Einige Provider lassen es aber auch zu, den Parameter für die .htaccess zu steuern. Das würde dann folgend aussehen.

php_value memory_limit 32M

[QUOTE=medminusshopping;25799]Ich will ca. 100.000 Artikel hochladen[/QUOTE]
So etwas importiert man nicht über den Shop, weil es zu lange dauert. Man kann csv-Dateien direkt in die Datenbank importieren, also ohne Shop. Unsere 25.000 Artikel brauchen mit dieser Methode ca. 15s. Allerdings muß die csv natürlich der Tabellenstruktur oxarticles entsprechen. Dito für Kategorien etc. Letztlich ist es kein echter Import, sondern ein Neuaufbau der entspr. DB-Tabelle. Funktioniert sehr gut und ist automatisierbar.

[QUOTE=Thorsten Albrecht;25854]So etwas importiert man nicht über den Shop, weil es zu lange dauert. Man kann csv-Dateien direkt in die Datenbank importieren, also ohne Shop. Unsere 25.000 Artikel brauchen mit dieser Methode ca. 15s. Allerdings muß die csv natürlich der Tabellenstruktur oxarticles entsprechen. Dito für Kategorien etc. Letztlich ist es kein echter Import, sondern ein Neuaufbau der entspr. DB-Tabelle. Funktioniert sehr gut und ist automatisierbar.[/QUOTE]

Und wie ist das wenn der Provider nur eine gewisse Größe der CSV Datei erlaubt?

[QUOTE=Priester;25866]Und wie ist das wenn der Provider nur eine gewisse Größe der CSV Datei erlaubt?[/QUOTE]
Ich importiere die Daten direkt von der Shell (entweder Unix-Shell oder DOS); da gibt es nirgendwo irgeneine Größenbegrenzung. Es könnte allerhöchstens einen Timeout bei MySql geben, was ich aber für unwahrscheinlich halte. Du meinst vmtl. einen CSV-Import via PHPMyAdmin oder ähnliche Tools? Das ist meist nicht automatisierbar.

[QUOTE=Thorsten Albrecht;25867]Ich importiere die Daten direkt von der Shell (entweder Unix-Shell oder DOS); da gibt es nirgendwo irgeneine Größenbegrenzung. Es könnte allerhöchstens einen Timeout bei MySql geben, was ich aber für unwahrscheinlich halte. Du meinst vmtl. einen CSV-Import via PHPMyAdmin oder ähnliche Tools? Das ist meist nicht automatisierbar.[/QUOTE]
Bei Shared Hostern gibt es da Größenbeschränkungen…

Ich würde den Import auf einer lokalen Installation (XAMPP) machen, und dann die Datenbank mit PHPMyAdmin Dumpen (mit gzip-Kompression).

Und dann mit dem 1 & 1 MySQL-Admin-Tool (PHPMyAdmin, das aber offenbar außerhalb des User-Contextes läuft, und somit nicht in einen Timeout) in die Live-Datenbank importieren.

Wenn das dann immer noch nicht klappt, den 1&1-Support bitten, den Dump einmalig in die DB einzuspielen.

Das machen die sogar!

[QUOTE=Thorsten Albrecht;25867]Ich importiere die Daten direkt von der Shell (entweder Unix-Shell oder DOS); da gibt es nirgendwo irgeneine Größenbegrenzung. Es könnte allerhöchstens einen Timeout bei MySql geben, was ich aber für unwahrscheinlich halte. Du meinst vmtl. einen CSV-Import via PHPMyAdmin oder ähnliche Tools? Das ist meist nicht automatisierbar.[/QUOTE]

Richtig. Über PHPMyAdmin klappt dass bei mir nicht. Hatte meine Artikel ( CSV ) gesplittet.Leider.

Gibt es eine Anleitung dazu wie ich dass mit Unix-Shell oder DOS bewerkställigen kann?
Auf jedenfall klingt dass sehr interessant.

[QUOTE=Priester;25869]Gibt es eine Anleitung dazu wie ich dass mit Unix-Shell oder DOS bewerkställigen kann?[/QUOTE]

Ist nicht weiter schwer:

TRUNCATE TABLE `oxarticles`; 

# CSV-Importe
LOAD DATA LOCAL INFILE '.\\d50091_oxarticles.csv' INTO TABLE `oxarticles` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '
';

Man kann sich damit in einem lokal gehaltenen Shop (z.B. in Xampp) eine Schattendatenbank bauen, die man dann per Dump in den Live-Shop überspielt. Nach einem kurzen Import über eine SSH-Shell ist dann alles aktualisiert (während der Shop ca. 15s hängt). Ist die Alternative, wenn man keine SOAP-Schnittschnittstelle benutzen kann/möchte, um die Daten zu aktualisieren. Auf diese Weise habe ich eine Schnittstelle zur Warenwirtschaft Navision (Dynamics NAV) realisiert, die ganz hervorragend läuft.

Wo muss die Datei dann liegen ? Mein MySQL Server hat nicht dieselbe Adresse wie der Webserver, wie mach ich das dann ?

[QUOTE=Thorsten Albrecht;25987]Ist nicht weiter schwer:

TRUNCATE TABLE `oxarticles`; 

# CSV-Importe
LOAD DATA LOCAL INFILE '.\\d50091_oxarticles.csv' INTO TABLE `oxarticles` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '
';

Man kann sich damit in einem lokal gehaltenen Shop (z.B. in Xampp) eine Schattendatenbank bauen, die man dann per Dump in den Live-Shop überspielt. Nach einem kurzen Import über eine SSH-Shell ist dann alles aktualisiert (während der Shop ca. 15s hängt). Ist die Alternative, wenn man keine SOAP-Schnittschnittstelle benutzen kann/möchte, um die Daten zu aktualisieren. Auf diese Weise habe ich eine Schnittstelle zur Warenwirtschaft Navision (Dynamics NAV) realisiert, die ganz hervorragend läuft.[/QUOTE]

Danke Thorsten

Xampp hab ich installiert und die originale DB exportiert und per SQL importiert lokal auf dem Rechner.

Aber…SSH-Shell ? Import? sagt mir nichts bzw. versteh ich nur Bahnhof. Ich soll also nun per SSH-Shell meine CSV Datei mit 17000 Artikeln importieren und dannach irgendwie in den " Originalen Shop " importieren? :eek::confused:

Wie was wo muss ich machen?

[QUOTE=Priester;25869]Gibt es eine Anleitung dazu wie ich dass mit Unix-Shell oder DOS bewerkställigen kann?[/QUOTE]

Jo, hab ich hier mal geschrieben:

Gruß

[QUOTE=Marco Steinhaeuser;27324]Jo, hab ich hier mal geschrieben:

Gruß[/QUOTE]

Jo Marco…schön abber mein Inglisch ist schon veraltet…:smiley: gibts die Anleitung auch auf Deutsch?? :confused:

Hi,

hier gibt’s was zum Lachen:
http://translate.google.de/translate?u=http%3A%2F%2Fwiki.oxidforge.org%2FTutorials%2FHow_to_move_a_database_bigger_2MB&sl=en&tl=de&hl=&ie=UTF-8

Mein Lieblingssatz:

Achten Sie darauf: Nein Fortschrittsbalken wird angezeigt, wenn das Hochladen der Deponie. For huge databases, just wait for the next prompt. Bei großen Datenbanken, nur warten, bis die nächste Frage.

Es sollte sich aber verstehen lassen. Im Wesentlichen geht es ja um die Anweisungen. Wenn Du Lust hast, kannst Du es gern für alle anderen, denen es genauso geht wie Dir, in vernünftiges Deutsch bringen und in die Wiki schreiben.

Gruß

Gruß

Lustig…jo

werde heute versuchen meine exportierte DB ( 50 mb ) mit bigdump hoch zu laden.