Beiträge

OXID EE MySQL Master/Slave Setup

oxid-news

Hintergrund

Der OXID eShop unterstützt in der Enterprise Edition (EE) MySQL Master/Slave Datenbank-Setups, was für sog. „Read-/Write-Splitting“ genutzt werden kann. Dadurch ist es möglich, Datenbank-Abfragen auf mehrere Datenbank-Server zu verteilen, um damit im Idealfall an Datenbank-Performance zu gewinnen und Shops gerade zu Lastzeiten schneller zu machen.
Read-/Write-Splitting kann ebenso helfen, das Shop-Frontend performant zu halten, wenn z.B. gerade Massen-Updates über ERP- oder PIM-Schnittstellen im Shop-Backend laufen, welche mit vielen Insert-Statements nicht selten Datenbank-Locks auslösen, die sich dann auch auf das Frontend auswirken können. Im schlimmsten Fall ist der Shop zeitweise nicht mehr aufrufbar, weil gleichzeitig zu den laufenden Insert- und Update-Statements aus einer gelockten Datenbank-Tabelle gelesen werden soll.

Master/Slave Setup in OXID

Im OXID eShop ist die Konfiguration der Master-/Slave-Verteilung sehr einfach, hier genügt es, in der allgemeinen Shop-Konfigurationsdatei „config.inc.php“ die einzelnen Server einzutragen.

Hierzu gibt es zwei Variablen, die gesetzt werden müssen:

$this->aSlaveHosts = array('localhost', '192.168.0.10:3306', '192.168.0.11:3307');
$this->iMasterSlaveBalance = 0;

Im Array „aSlaveHosts“ können beliebig viele IP-Adressen (mit optionalem Port) eingetragen werden. Auch der Master wird hier als erster Wert hinterlegt.
Der zweite Parameter, „iMasterSlaveBalance“ legt fest, wie die Verteilung der Abfragen zwischen Master und Slave ist.
Ein Wert von „0“ bedeutet hier, dass alle Abfragen auf den Slaves stattfinden und auf den Master nur schreibend zugegriffen wird.

Für Shops mit regelmässig laufenden Artikeldaten-Updates über Schnittstellen zu Warenwirtschaftssystemen usw. sollte diese Einstellung verwendet werden, damit sichergestellt ist, dass auch bei Massen-Updates die Lesezugriffe aus dem Shop-Frontend nicht in Mitleidenschaft gezogen werden.

Das Setup der Datenbankserver an sich geht über den Umfang dieses Artikels hinaus, hierzu finden sich z.B. sehr gute Infos unter https://www.thomas-krenn.com/de/wiki/MySQL_Replikation

Tipps und Tricks für das MySQL Master/Slave Setup

Der OXID EE Shop selbst ist bereits sehr gut für die Master-/Slave-Aufteilung optimiert, sobald Slaves konfiguriert sind, hält sich der Shop strikt an die definierte Aufteilung und führt z.B. Lesezugriffe immer auf den Slaves aus.

Für eigene Erweiterungen des Shops sollte man sich hier am OXID Standard orientieren, hier ist es v.a. wichtig, für Lese- oder Schreibzugriffe die richtigen Methoden des OXID Datenbank-Adapters zu verwenden.

Prinzipiell gilt: für Lesezugriffe sollte man immer die „select()“-Methode der „oxDb“-Klasse nutzen, da nur diese wirklich standardmässig dezidiert auf die Slaves zugreift.

$oRs = oxDb::getDb()->select("SELECT * FROM oxarticles WHERE oxartnum = '12345'"); // liest vom Slave

Man kann allerdings als dritten Parameter „false“ übergeben, um dennoch vom Master zu lesen – Standard ist jedoch „true“ und damit „Slave:

public function select($sSql, $aParams = false, $blType = true)

Auch die Methoden „getOne()“, „getArray()“, „getAssoc()“, „getRow()“ und „getAll()“ selektieren standardmässig von den Slaves, können aber ebenfalls per Parameter auf den Master „umgebogen“ werden bei Bedarf.

Nutzt man hingegen die Methoden „execute()“ oder „query()“, geht das SQL-Statement ausnahmslos an den Master-Server!

$oRs = oxDb::getDb()->query("SELECT * FROM oxarticles WHERE oxartnum = '12345'"); // liest vom Master

Problematisch sind bei Master-/Slave-Setups oft SQL-Fehler, welche zu Fehlermeldungen auf Datenbank-Ebene führen. MySQL ist hier meist recht rigoros und beendet die Synchronisation zwischen Master und Slaves. Diese muss dann vom System-Administrator wieder manuell aktiviert werden.

Man sollte das System also erst auf Herz und Nieren testen und die Synchronisation im Testbetrieb beobachten, um zu entscheiden, ob es hier kritische Stellen im Shop gibt und regelmässige SQL-Fehler auftauchen.

Handelt es sich um temporäre, „unwichtigere“ Daten (z.B. Session-Einträge, Captcha-Codes o.ä.), kann man ggf. in Erwägung ziehen, die betroffenen Tabellen aus der Synchronisation herauszunehmen bzw. MySQL-Fehler für diese Tabellen bei der Synchronisation zu ignorieren, siehe z.B. https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html#option_mysqld_slave-skip-errors
Ausserdem kann helfen, die Slaves explizit als „read_only“ zu konfigurieren, damit es keine „versehentlichen“ Schreibversuche auf die Slaves gibt.

MySQL Master/Slave in OXID – Fazit

Mit der Option für Master-/Slave-Setups bietet OXID gerade für große Shops mit regelmässigen, umfangreichen Datenänderungen über Drittsysteme einen erheblichen Performance-Hebel.
Weiss man um die technischen Hintergründe des OXID-Datenbankadapters und kennt die möglichen Fehlerquellen auf Seiten der MySQL-Datenbank-Synchronisation, spricht nichts dagegen, dieses Feature im produktiven Einsatz zu nutzen.
Hat man dann noch einen technisch versierten Hoster an seiner Seite, kann eigentlich nichts mehr schiefgehen :)

Hoffentlich hat dieser Artikel dazu beigetragen, die technischen Hintergründe in Bezug auf OXID EE und das Mysql Master-/Slave-Setup zu erhellen!

 

Blog Einträge

plentymarkets greift nach den Sternen und lädt zum 10. Jubiläum des plentymarkets Online-Händler-Kongress 2017!

Der E-Commerce – unendliche Weiten! Die plentymarkets GmbH entführt am 17.03.2017 alle Händler und Interessierten in eine neue Dimension des Online-Handels. Zum 10. Jubiläum des plentymarkets Online-Händler-Kongresses, der gemeinhin auch als Jahresauftakt der Online-Handel-Branche gefeiert wird, haben sich die E-Commerce-Visionäre aus Kassel für das Jahr 2017 etwas ganz Besonderes einfallen lassen.

plentymarkets Kongress 2017

plentymarkets Kongress 2017

Ein kleiner Schritt für dich. Ein großer Schritt für dein Business.

An Bord bei der plentyCrew werden Händler von zahlreichen Branchenexperten in spannenden Vorträgen und Workshops auf ihrer Reise durch die unendlichen Möglichkeiten des Online-Handels begleitet. Wohin die Reise geht, ist jedem selbst überlassen – Händler sollen zum Navigator ihres eigenen Business werden und sich für die Zukunft stärken. Neben der Vorstellung brandneuer Features des E-Commerce-ERPs werden also auch praxisnahe Antworten auf alle Fragen zu Omni- & Multi-Channel, die Einbindung des stationären Handels mit plentymarkets POS, Plugin-Entwicklung und vielem mehr beantwortet. Auf dem kongressinternen Messebereich bieten rund 60 Aussteller die gesamte Palette an E-Commerce-Services, die ein Händler für sein Business benötigt. Auch hier gibt es zahlreiche Ideen und Angebote sowie wertvolle Kontakte für den erfolgreichen Online-Handel.

Ab 09:00 bleiben in Sachen Infotainment, Networking und Know-how rund um plentymarkets sowie alle Top-Themen aus der E-Commerce-Szene keine Wünsche mehr offen. Der Tag findet wie jedes Jahr mit der Verleihung des plentyAward ab 18:00 seinen krönenden Abschluss. Doch damit nicht genug! Ab 20 Uhr geht es aus dem All unter die Erde – in den Festkeller der Weinkirche Kassel, wo Besucher, Aussteller, Speaker und die plentyCrew gemeinsam den Tag bei Drinks und Leckereien gebührend ausklingen lassen.

Plugin-Pioniere aufgepasst: CodeCamp Klappe die Zweite

Nach dem Erfolg des plentyCodeCamp Anfang September 2016 wird auch am Kongress parallel ein ganztägiges CodeCamp für alle Coder und Plugin-Interessierten stattfinden. plentymarkets Developer vermitteln hier das ganze Wissen um plentymarkets Plugins – von den Grundlagen bis zu angeleiteten Coding-Sessions. Stay tuned… weitere Infos zum CodeCamp folgen!

Three, two, one – ZERO: Get ready for take off!

Tickets für Kongress und Aftershow-Party sind ab sofort auf www.plenty-kongress.com verfügbar.

Die Webseite wird stets mit den neusten Ankündigungen zu Themen, Speakern und Ausstellern gefüllt. plentymarkets hält auch über eine Facebook-Veranstaltung auf dem Laufenden – hier verpassen Interessenten keine Ankündigung rund um den Kongress.

Wer teilnehmen möchte, sollte sich unbedingt noch bis zum 31.12.2016 ein Kongress-Ticket zum unschlagbaren Early-Bird-Preis mit 25% Rabatt auf die Kongress-Teilnahme sichern. Die Party-Tickets sind auf 500 limitiert – beeilen lohnt sich! Die Option zum Party-Ticket wird während des Buchungsvorgangs angezeigt.

Neues Preismodell plentymarkets ZERO

Ein komplettes E-Commerce-ERP ohne monatliche Fixkosten: mit dem neuen Preismodell plentymarkets ZERO bekommen Neukunden vollen Zugriff auf sämtliche Funktionen der Software zum Nulltarif.

plentymarkets-neues-preismodell-zero

  • Nur 1 Monat Vertragslaufzeit
  • Keine Fixkosten
  • Keine Startinvestition
  • Kostenloser Support

Keine Einstiegskosten – voller Leistungsumfang

Bisher standen die vielen Funktionen des ERP als einzeln buchbare Module zu einem monatlichen Grundpreis zur Verfügung. Mit dem Produkt plentymarkets ZERO erhalten Kunden nun kostenlosen Zugriff auf sämtliche Bereiche der Software. Damit stehen Händlern alle Funktionen wie die bewährte Multi-Channel-Technologie, der Online-Shop oder die Warenwirtschaft sowie die Bereitstellung durch zuverlässiges Cloud Hosting und vieles mehr direkt im vollen Umfang und ohne Einstiegskosten zur Verfügung. Dies ist vor allem für E-Commerce-Neueinsteiger oder einen Wechsel zum E-Commerce-ERP der Kasseler Softwareschmiede besonders attraktiv.

Wirklich ZERO ist bei diesem Modell der Preis: Das komplette Leistungsspektrum gibt es für Händler ohne monatliche Fixkosten. Berechnet wird lediglich eine Lizenzgebühr, die sich nach dem Umsatz des Händlers richtet: pro Auftrag wird ein niedriger Prozentsatz der Rechnungssumme berechnet, woraus sich Lizenzkosten ab 0,10 € ergeben. Durch diese Regelung ist das Preismodell für den Nutzer besonders fair: Nur wer erfolgreich plentymarkets im Omni-Channel einsetzt, zahlt eine geringe Lizenzgebühr.

Sobald das Business richtig gut läuft, wird es sogar noch günstiger: bereits ab nur 250 € monatliche Lizenzkosten gibt es einen zusätzlichen Rabatt!

Weitere Informationen und einen praktischen Kostenrechner, um eine möglichst realistische Auszeichnung zukünftiger Kosten zu erhalten, gibt es hier!

Über plentymarkets

plentymarkets ist ein E-Commerce ERP-System, das Warenwirtschaft mit Shopsystem und Multichannel-Vertrieb verbindet. Dank umfangreicher Funktionen und Schnittstellen entlang der gesamten E-Commerce-Wertschöpfungskette lässt sich mit der online-basierten Software der gesamte Workflow im Online-Handel voll automatisiert abbilden. plentymarkets verfügt neben dem eigenen Webshop über Anbindungen zu allen relevanten Marktplätzen, Payment-, Logistik-, Online-Shop-, Recht- und Affiliate-Marketing-Anbietern und ermöglicht Händlern so auf einfache Weise die gleichzeitige Erschließung einer Vielzahl an Verkaufskanälen.

plentymarkets lädt zu den plentyDays nach Kassel

Am 8. und 9. September 2016 begrüßt plentymarkets Kunden, Partner und Entwickler bei den plentyDays in Kassel. Im Rahmen des kostenlosen Events erläutern die E-Commerce-Experten die Zukunft des Unternehmens im Zeichen der Plugin-Fähigkeit und präsentieren ihr neues, modernes Kassensystem. Die Teilnehmer erwartet ein umfangreiches Programm mit zahlreichen Vorträgen und Workshops.

plentydays2016

Alles über Plugins beim ersten plentyCodeCamp

Das zweitägige CodeCamp befasst sich ausführlich mit der neuen Plugin-Fähigkeit von plentymarkets und bietet umfassende Einblicke in die Technologie – von der Einführung für Einsteiger bis hin zu Coding-Sessions für die Entwicklung eigener Plugins erfahren Teilnehmer hier alles Nötige, um zukünftig in Eigenregie kleine Erweiterungsprogramme für das umfangreiche E-Commerce ERP von plentymarkets zu erstellen. Ein Höhepunkt des CodeCamps ist sicherlich die Präsentation des neuen Webshop-Designs Callisto 4, welches als erstes Plugin-fähiges plentymarkets Produkt vorgestellt wird.

Themensessions zu B2B-Commerce und POS beim plentyWorkSpace

Für B2B-Händler und -Interessierte bietet der plentyWorkSpace am 8. September eine Gesprächsrunde zum Thema B2B. In der Session will das Unternehmen die Anforderungen des B2B-Handels an plentymarkets mit Teilnehmern diskutieren. „Wir wissen, dass die Abläufe und Workflows eines B2B-Händlers sich klar von denen eines B2C-Händlers unterscheiden – und damit auch die Anforderungen, die er an uns stellt“, so plentymarkets Geschäftsführer Steffen Griesel. „Wir haben deshalb eine 12-Punkte-Liste erarbeitet, die wir unseren Kunden und Partnern vorstellen und ihr Feedback dazu einholen möchten.“

Für den Nachmittag ist beim plentyWorkSpace die Präsentation des hauseigenen Kassensystems plentymarkets POS vorgesehen: mit dem neuen Produkt ist es plentymarkets Kunden zukünftig möglich, das E-Commerce ERP auch in den eigenen stationären Handel einzugliedern. Die Teilnehmer bekommen die Möglichkeit, das System vor Ort zu testen und erste eigene Erfahrungen beim Kassieren zu machen.

Partner-Event plentyHangout

Auch für Firmenpartner hat plentymarkets einen Programmpunkt parat: am Donnerstag Nachmittag findet unter dem Motto plentyHangout ein Get-Together statt, bei dem die Zusammenarbeit zwischen Kunden und Partneragenturen sowie die Präsentation eines neuen Partnermanagement-Tools im Mittelpunkt stehen werden.

Die ersten plentyDays finden jeweils von 9 bis 18 Uhr im Südflügel des Kulturbahnhofs in Kassel statt. Das Event ist für alle Teilnehmer kostenlos. Für das leibliche Wohl ist in der Mittagspause und beim abendlichen Event-Ausklang gesorgt.

Interessierte können sich ab sofort online über Xing zur Teilnahme anmelden.

plentyCodeCamp
plentyWorkSpacePOS
plentyWorkSpaceB2B

Neue Version 5.2: Shopware veröffentlicht erstes „reines“ Open Source Release

Nach der furiosen Ankündigung während des diesjährigen Community Days am 20. Mai hat Shopware gestern die Version 5.2 seines Shopsystems veröffentlicht. Mit dem neuen Release wurde viel Feedback aus der Community umgesetzt. Außerdem hat Shopware mit der neuen Version erstmals vollständig auf die Verschlüsselung seiner Zusatzfunktionen mit dem ionCube-Encoder verzichtet. Somit gilt Shopware 5.2 als erstes reines Open Source Release, was in der E-Commerce Szene einem Paukenschlag gleichkommt.

shopware Einkaufswelten Frontend

Shopware Einkaufswelten Frontend (Grafik: Shopware)

So zeigten sich insbesondere Veranstaltungen wie die Think Tanks, das „Insider Programm“ oder die Hackathons – der nächste findet vom 6. bis zum 8. Juli in Schöppingen statt – eine großartige Wirkung. „Überdies zahlen sich unser immenser Forschungsaufwand für innovative Zukunftskonzepte und die offene Roadmap, mit der wir klar unsere Ziele kommunizieren, aus“, so Hamann weiter. Dadurch sei Shopware 5.2 das „offenste“ Release, das es bisher gab.Die Version 5.2 ist ein großer Schritt in der Evolution von Shopware. Sie hält sowohl für Shopbetreiber, als auch für Entwickler und Endkunden eine Menge Neuerungen bereit, die die Software schneller, schlanker und zugleich noch vielseitiger machen. Die neuen Funktionen und Verbesserungen verdankt Shopware 5.2 dem Feedback aus seiner weltweit über 70.000 Mitglieder umfassenden Community, die für das aktuelle Release mehrere hundert Vorschläge für Verbesserungen und Ergänzungen einreichte. „Das freut uns sehr. Zumal wir seit langem den Wissensaustausch mit der Community durch unterschiedlichste Formate sehr stark fördern“, sagt Shopware-Vorstand Sebastian Hamann.

Die wichtigsten Neuerungen von Shopware 5.2 im Detail:

Optimierung der Einkaufswelten

Seit Shopware 5 ist es mithilfe der sogenannten Einkaufswelten möglich, emotional aufgeladene, inspirierende Shoppingerlebnisse zu schaffen. Mit der Version 5.2 hat Shopware diese Einkaufswelten weitreichend optimiert und in der Bedienung noch einfacher gestaltet, um Shopbetreibern die tägliche Arbeit weiter zu erleichtern. So ist es ab jetzt möglich, eine einzige Einkaufswelt für alle mobilen Endgeräte zu optimieren, ohne für jedes Gerät eine eigene Welt anzulegen. Die Einkaufswelten sind ab sofort außerdem mehrsprachfähig.

shopware Einkaufswelten Backend

Shopware Einkaufswelten Backend (Grafik: Shopware)

„Shopware ERP powered by Pickware“

Ab sofort ist die Warenwirtschaft Pickware kostenlos in das Backend der Editionen Shopware Professional und Professional Plus inklusive der Funktionen Bestellwesen, Lieferantenverwaltung, Bestandspflege uvm. integriert. Es ist keine externe Infrastruktur mit eigener Datenhaltung und fehleranfälligen Synchronisationsprozessen notwendig. Für die Automatisierung der Prozesse im Lager, Versand und Ladengeschäft kann Pickware flexibel mit Pickware Mobile, Pickware POS und vielen zusätzlichen Modulen erweitert werden.

Noch mehr Attribute

Eine verbesserte Attributverwaltung gibt Shopbetreibern die Möglichkeit, ihre Datenbasis flexibel zu erweitern. Von nun an ist es möglich, bestehende Attribut-Felder im Backend (beispielsweise Kunden, Bestellungen, Artikel usw.) um beliebige Felder, zum Beispiel aus einem Warenwirtschaftssystem, zu erweitern. Alle angelegten Attribute werden auch jeweils bei den Modulen im Backend ausgegeben, sodass diese direkt mit angepasst werden können. Das eröffnet Händlern ganz neue Möglichkeiten und sorgt für eine Zeitersparnis.

Die neue Freitextverwaltung (Grafik: shopware)

Die neue Freitextverwaltung (Grafik: shopware)

Adressmanagement

Die Erweiterung des Adressmanagements im Frontend ist eine sinnvolle Maßnahme, die insbesondere den Endkunden zugutekommt. So ist es für den Konsumenten nun sehr viel einfacher, Lieferadressen anzulegen, zu verwalten und auch alternative Lieferadressen anzugeben.

Neues Plugin-System

Das überarbeitete Plugin-System wird insbesondere die Pluginentwickler freuen. „Ab sofort werden die Erweiterungen noch tiefer in den Kern integriert. Damit beabsichtigen wir, die Lesbarkeit der Plugins einfacher und übersichtlicher zu gestalten sowie die Wartung durch die Entwickler komfortabler zu machen“, sagt Shopware-Vorstand Stefan Hamann.

Mit PHP immer auf der sicheren Seite

Um die Sicherheit der Software zu erhöhen, passt Shopware die Mindestanforderungen stets an diejenigen PHP-Versionen an, die noch Security Support von Seiten des Herstellers genießen.

Deprecated Funktionen

Shopware hat mit der Version 5.2 sämtliche Funktionen, die nicht mehr benötigt werden (sogenannte Deprecated Funktionen), aus dem Kern entfernt. Das betrifft auch das alte, sogenannte Shopware Emotion Template. Somit ist der Shopware-Kern noch „schlanker und aufgeräumter“.

Neue Premium Funktionen

Mit der Veröffentlichung der Version 5.2 hat Shopware gleichzeitig zwei neue Premium Funktionen herausgebracht: „Shopping Advisor“ und „Custom Products“.
Das Plugin „Shopping Advisor“ ermöglicht es Kunden, mittels Abfrage verschiedener Wünsche und Vorlieben im Shop zum passenden Produkt zu gelangen. Damit liefert Shopware eine sehr umfangreiche Lösung für das immer wichtiger werdende „Curated Shopping“, denn in vielen Fällen mangelt es Onlineshops noch immer an Beratung. Der Relaunch von „Custom Products“ hingegen erlaubt es Kunden, Produkte selbst zu kreieren und etwa ein Trikot mit eigenem Aufdruck, einen Trauring mit individueller Gravur oder eine Tasse mit einem persönlichen Spruch zu versehen. Beide Erweiterungen sind ab sofort im Shopware Community Store erhältlich.

Subshops: ein Geschenk für Shopbetreiber

Weil Shopware überzeugt ist, dass die Möglichkeit zur Einrichtung einer unbegrenzten Anzahl von zusätzlichen Instanzen wie z.B. Marken-Shops mittlerweile zum Standard gehören sollte, macht der Shopsystem-Hersteller Händlern mit der Version 5.2 ein besonderes Geschenk. So ist das Anlegen beliebig vieler Subshops ab jetzt völlig kostenlos und dazu ganz einfach aus dem Backend möglich. Bisher kostete eine Subshop-Lizenz 495,- Euro.
Seit dem Erscheinen der quelloffenen Community Edition im Jahr 2010 hat Shopware sich kontinuierlich weiter geöffnet. Diesen Kurs wird der Shopsystem-Hersteller konsequent weiterverfolgen. Und das mit gutem Grund, wie Shopware-Vorstand Stefan Heyne anführt: „Denn je weiter wir uns öffnen, desto erfolgreicher werden wir gemeinsam mit unserer Community.“