Datenbankteilsicherung

      Datenbankteilsicherung

      Hallo zusammen,

      seit einiger Zeit habe ich ein ganz massives Problem mit meiner Datenbank, wodurch ein produktiver Einsatz des Shops unmöglich ist.

      Da mir niemand bei dem Problem helfen kann (auch im "offiziellen" Magento-Forum gabs keine produktiven Lösungsansätze), bleibt wohl nur die Variante, die komplette Database neu aufzuspielen. Denn da ich am Core nicht geschraubt habe (bis auf einige Template-Dateien), schließe ich einen Ansteuerungsfehler über den Core eigentlich aus.

      Meine Frage: Welche Teile der Database muss ich sichern, wenn ich
      - Artikelstamm
      - Artikelbilder (bzw. die Zuordnungen)
      - Atrribute (-sets)
      - Kategorien

      sichern und wieder zurückspielen möchte (nach Neuaufspielung der Default-Database).

      @Maik: Könntest Du das irgendwie hinbekommen? Ich mach das sonst aber auch selbst, muss nur wissen, wie ;)

      Gruß
      Ingo
      Ich habe die DB kopiert und versuche das Chaos zu entwirren... Derzeit verstehe ich das Problem der falsche Zuordnung noch nicht, ich denke morgen weiß ich da mehr.

      Zur Not müssen wir die Artikel und Kunden exportieren, den Shop neu aufsetzen und dann wieder importieren. Der Nachteil an der Sache ist, dass alle Einstellungen verloren gehen... :(
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Ich habe mich dann doch selbst nochmals intensiv selbst mit dem Problem beschäftigt, es muss ja irgendwie weitergehen und ich habe leider keine Zeit mehr, die Sache weiter zu verschieben ...


      Ich glaube, ich habe das Problem jetzt eingrenzen können. Es muss sich um einen Fehler bei der Löschung und somit Rückstellung der bisherigen Testbestellungen handeln. Irgendwelche Teilbereiche der Databse scheinen nicht mitgelöscht worden zu sein, wodurch bei neuen Bestellungen (die wieder mit der 10...1 anfangen) irgendwo Doubletten vorhanden sein müssen. Denn ab einer bestimmten Bestellnummer ist das Problem nicht mehr vorhanden.

      Somit bleibt die Frage offen, welches Datenfeld ich bei der Löschung übersehen haben könnte. Folgende Datenfelder habe ich geleert:

      SET FOREIGN_KEY_CHECKS=0;

      TRUNCATE `sales_order`;
      TRUNCATE `sales_order_datetime`;
      TRUNCATE `sales_order_decimal`;
      TRUNCATE `sales_order_entity`;
      TRUNCATE `sales_order_entity_datetime`;
      TRUNCATE `sales_order_entity_decimal`;
      TRUNCATE `sales_order_entity_int`;
      TRUNCATE `sales_order_entity_text`;
      TRUNCATE `sales_order_entity_varchar`;
      TRUNCATE `sales_order_int`;
      TRUNCATE `sales_order_text`;
      TRUNCATE `sales_order_varchar`;
      TRUNCATE `sendfriend_log`;
      TRUNCATE `tag`;
      TRUNCATE `tag_relation`;
      TRUNCATE `tag_summary`;
      TRUNCATE `wishlist`;
      TRUNCATE `log_quote`;
      TRUNCATE `report_event`;

      ALTER TABLE `sales_order` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_datetime` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_decimal` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity_datetime` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity_decimal` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity_int` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity_text` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_entity_varchar` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_int` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_text` AUTO_INCREMENT=1;
      ALTER TABLE `sales_order_varchar` AUTO_INCREMENT=1;
      ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
      ALTER TABLE `tag` AUTO_INCREMENT=1;
      ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
      ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
      ALTER TABLE `wishlist` AUTO_INCREMENT=1;
      ALTER TABLE `log_quote` AUTO_INCREMENT=1;
      ALTER TABLE `report_event` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
      ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;

      TRUNCATE `eav_entity_store`;
      ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;


      TRUNCATE `customer_address_entity`;
      TRUNCATE `customer_address_entity_datetime`;
      TRUNCATE `customer_address_entity_decimal`;
      TRUNCATE `customer_address_entity_int`;
      TRUNCATE `customer_address_entity_text`;
      TRUNCATE `customer_address_entity_varchar`;
      TRUNCATE `customer_entity`;
      TRUNCATE `customer_entity_datetime`;
      TRUNCATE `customer_entity_decimal`;
      TRUNCATE `customer_entity_int`;
      TRUNCATE `customer_entity_text`;
      TRUNCATE `customer_entity_varchar`;
      TRUNCATE `log_customer`;
      TRUNCATE `log_visitor`;
      TRUNCATE `log_visitor_info`;

      ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
      ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
      ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
      ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
      ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
      ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
      ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
      ALTER TABLE `log_customer` AUTO_INCREMENT=1;
      ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
      ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;

      SET FOREIGN_KEY_CHECKS=1;

      Hat jemand einen Tipp für mich, welches Datenfeld ich eventuell übersehen haben könnte?



      Gruß
      Ingo
      Tja, die Lösung ist die, dass ich mich nicht mehr mit dem Problem beschäftige :D

      Ernsthaft: Es wurden nur Bestellungen bis zu der Bestellnummer durcheinandergewürfelt, die in der Vergangenheit bereits einmal belegt waren. Daraus kann man schließen, dass irgendein Datenfeld bei der Leerung unberücksichtigt geblieben sein muss. Da ich für Testzwecke aber "nur" ca. 10 Bestellungen angelegt hatte (weiss selbst nicht mehr so genau, wie viele es waren), habe ich einfach erneut wahllos Testbestellungen reingehämmert (12 Stück). Ab der achten oder neunten Bestellung funktionierte wieder alles ganz normal. Ich habe beschlossen, nicht mehr tagelang nach den Datensätzen zu suchen, die bei der vorbeschriebenen Methode offenbar nicht gegriffen wurden und belasse es so.

      Hauptsache es funktioniert ...