Backup maken van een Magento webshop

Wanneer je bedrijf afhankelijk is van 1 of meerdere Magento webwinkels dan is het van groot belang om goede en recente backups te hebben van de gehele installatie. Backups zijn maar op 1 moment nodig, namelijk wanneer de webshop in zijn geheel niet meer werkt. In dit artikel leg ik je uit hoe j een backup kunt maken van je Magento webwinkel.

photo credit: Shanghai Daddy via photopin cc

photo credit: Shanghai Daddy via photopin cc

Een oud cliche dat al jarenlang de ronde gaat tussen onder andere systeembeheerders is dat wanneer data niet bestaat in minstens 3 plaatsen, de data niet bestaat. Hier zit een kern van waarheid in, op een gegeven moment gaat er een keer iets mis en dan is het heel belangrijk dat je een goede backup hebt om belangrijke gegevens te kunnen herstellen.

De meeste webhosts maken ( al dan niet tegen betaling ) automatisch een backup van de website of webwinkel. Het is over het algemeen genomen niet slim om van 1 backup uit te gaan. Het is namelijk veel veiliger om meerdere backups te hebben die op verschillende locaties staan. Een dergelijke locatie kan de “cloud” zijn, of veilige opbergplekken op kantoor.

Het proces van het maken van een complete backup is gelukkig erg simpel in Magento, echter zijn er een aantal veelgemaakte fouten die je moet proberen te zien voorkomen. Dit om er zeker van te zijn dat je backups in staat zijn om de gehele ecommerce installatie te kunnen herstellen wanneer dat nodig is.

Backup maken met behul van het Magento controle paneel
Er zijn standaard een aantal opties in Magento beschikbaar gesteld waarmee je een backup kunt maken van je webwinkel. Je kunt deze vinden in de “tools” sectie van “system” in de backoffice. Er zijn een drietal type backups waar je uit kunt kiezen:

  • Systeem backup. Deze methode zorgt ervoor dat alle bestanden waar Magento uit bestaat samen met een database “dump” in een archief worden opgeslagen.
  • Database en Media backup. Dit type backup beslaat de database en de inhoud van de media map. Dit type backup neemt niet de thema bestanden mee in de archivering.
  • Database backup. Deze maakt ( zoals de naam al doet vermoeden ) een complete kopie van de database.

Een groot voordeel van het backuppen van je Magento webwinkel op deze maniet is dat dit Magento in staat stelt om terug te draaien naar een vorige versie. Dit wordt ook wel een rollback genoemd. Dit houdt in dat wanneer je een configuratie error hebt gemaakt of per ongelijk systeembestanden hebt verwijderd, je het systeem kunt terugzetten naar een eerdere versie. Het lijkt een beetje op de manier hoe Microsoft Windows een eerdere versie terugzet. Hierbij worden assets zoals afbeeldingen in de media map niet aangeraakt.

In sommige gevallen wil je de database en bestanden onafhankelijk van elkaar backuppen, daarbij is het handig om te weten hoe je een manuele backup kunt aanmaken en ook kunt herstellen. Hierbij laat ik je zien hoe je een backup kunt maken buiten de magento backoffice om. Let er op dat je een backup van zowel de bestanden als die van de database nodig hebt om een Magento installatie te kunnen herstellen. Het simpelweg kopieeren van bestanden via FTP is niet genoeg, de database is een essentieel en belangrijk onderdeel in het geheel.

Het backuppen van bestanden

De beste manier van het backuppen van al je bestanden ( zonder de database ) om om te verbinden met de FTP of SFTP van je webserver. Deze inloggegevens heb je op een eerder stadium al mogen ontvangen van je webhosting partij. Kopieer de map die alle Magento bestanden bevat naar een lokale machine, een externe server of naar een cloud storage dienst zoals Dropbox, Google Drive of Amazon S3.

Handmatige backup maken van de database

Er zijn een aantal manieren om een backup te maken van een MySQL database. Een backup van een database maken houdt niet meer in dan de database server een tekst bestand in het formaat SQL te laten genereren met daarin alle instructies ( queries ) waarmee zowel de database structuur alsmede de data kan worden hersteld.

Hosting partijen die gebruik maken van admin panels geven je ook toegang tot de database via doorgaans phpMyAdmin. Dit is een gangbare tool waarmee databases op je webhost kunnen worden beheert. Om een handmatige backup te maken van de database vind je allereerst de locatie waarop phpMyAdmin geinstalleerd is, bijvoorbeeld: www.mijnwebwinkel.nl/phpMyAdmin of phpmyadmin.mijnwebwinkel.nl. De precieze locatie is op te vragen bij je webhost, en staat doorgaans ook vermeld in de 1e e-mail die je ontvangt na het aanvragen van een webhosting pakket.

Wanneer je ingelogd bent op de phpMyAdmin omgeving, navigeer je naar het backup gedeelte. Maak vervolgens een “export”, in de meeste gevallen kun je gebruik maken van de “quick” optie. Echter, wanneer je meer dan 1 database geconfigureerd hebt staan in dezelfde MySQL installatie is het handiger om gebruik te maken van de “custom” optie. Vind vervolgens de relevante database in het selectie menu (dropdown). Laat de overige instellingen voor wat ze zijn, behalve wanneer je weet wat je aan het doen bent!

Scrol naar het einde van de pagina en klik op “Go”. Een dump ( backup ) van de database zal aangemaakt worden. Dit kan heel even duren, je webbrowser zal de download automatisch proberen op te slaan.

Een andere manier -buiten phpMyAdmin om- is om met behulp van de commandline een backup te maken. Log hiervoor in met behulp van SSH op je webserver en voer onderstaande code uit

Vervang uiteraard eerst even de waardes tussen de brackets ( [] ) met de juiste gegevens. Dit commando hetzelfde SQL backup bestand aanmaken, kopieer dit bestand naderhand naar een veilige locatie.

Wat wel eens voorkomt wanneer je een handmatige backup maakt van je Magento installatie is dat Magento niet de kans heeft gehad om speciale statements in het backup bestand te kunnen voegen. Deze statements zorgen er onder andere voor dat de integriteit van je webwinkel goed blijft. Wanneer je een backup bestand wil terugzetten kan het voorkomen dat je een soortgelijke error als onderstaande melding krijgt:

Cannot add or update a child row: a foreign key constraint fails.

Om constraint checking te deactiveren tijdens het importeren van een backup bestand is het nodig om een aantal SQL statements toe te voegen aan het begin en einde van het SQL backup bestand. Voeg onderstaande statements toe aan het begin van het bestand:

Doe hetzelfde voor onderstaande code, en plaats deze aan het einde van het backup bestand om integriteit controles weer aan te zetten:

Met deze aanpassen kun je een Magento database weer herstellen aan de hand van een handmatig aangemaakt SQL bestand.

Wacht dus niet met het aanmaken van 1 of meerdere backups van je Magento webwinkel voordat het te laat is. Het backuppen van je Magento webwinkel moet onderdeel zijn van je regulieren onderhoud routine.

2 antwoorden

  1. Jan Kok 12 december 2016 / 11:27 pm

    Beste mensen,

    Ik ben er nog niet uit maar ik moet zeggen dat het uitstekend is beschreven ik ben het op deze manier nog niet tegen gekomen. Ik ga het nog een paar keer door lezen voor ik er aan begin.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *