Module 8 · 8.2
Terugzetten en testen
Module 8: Back-ups, staging en PHP-upgrades · Leestijd: 8 minuten
Leerdoel: Na deze les kun je een back-up terugzetten, ook naast de bestaande site, en controleren of hij compleet en bruikbaar is.
Kernbegrippen: terugzetten (restore), volledig of gedeeltelijk, bestanden of database, naast de site terugzetten, testterugzetting, controlelijst na terugzetten, adressen aanpassen, database importeren
Een back-up is pas iets waard als hij terug kan
Het pijnlijkste moment bij back-ups is niet het maken, maar het ontdekken dat het terugzetten niet lukt: de database ontbreekt, de back-up is half, het bestand is beschadigd, of niemand weet hoe het moet. Dat ontdek je liever op een rustige dinsdag dan tijdens een gehackte zaterdag.
Daarom test je het terugzetten, regelmatig, en liefst zonder je echte site aan te raken.
Wat je terugzet
Je hoeft niet altijd alles terug te zetten. Kies wat past:
| Situatie | Wat je terugzet |
|---|---|
| Eén pagina per ongeluk aangepast | Niets: gebruik de revisies (les 4.1) |
| Een afbeelding of map per ongeluk verwijderd | Alleen die bestanden |
| Een update heeft de site gebroken | De bestanden van die plugin of het hele wp-content, soms ook de database (als de update de database heeft aangepast) |
| Inhoud gewist in de database | De database, maar besef dat alles daarna ook teruggaat |
| Een hack | Alles, volledig (les 7.5), uit een back-up van ruim vóór de hack |
Bestanden en database horen bij elkaar. Zet je alleen de bestanden van gisteren terug bij de database van vandaag, dan kan een plugin in de war raken, omdat zijn database al was bijgewerkt. Bij twijfel: allebei, van hetzelfde moment.
En altijd: wat na het moment van de back-up is gebeurd, ben je kwijt. Nieuwe berichten, reacties, bestellingen, inschrijvingen. Bij een webwinkel noteer je vóór het terugzetten welke bestellingen er sinds de back-up zijn binnengekomen.
Naast de site terugzetten
De veiligste manier om te testen en om dingen te redden, is een back-up naast je huidige site terugzetten: op een testsubdomein (test.example.com) of in een aparte map, met een eigen database. Je echte site blijft ongemoeid. Daarna kun je:
- controleren of de back-up compleet is;
- er één ding uit halen (een verwijderde pagina, een oude versie van een tekst) en dat met de hand overzetten;
- een herstelplan oefenen.
Sommige hosters kunnen dat met een knop (bij WebOké Backups bijvoorbeeld "naast de huidige site terugzetten"); elders zet je de bestanden en de database met de hand op een testplek.
Let op het adres
Een back-up van https://example.com die je op https://test.example.com zet, weet nog steeds dat hij op example.com hoort: siteurl en home in de database (les 1.3) en alle links verwijzen naar je echte site. Het gevolg: je klikt op de testsite en komt op de echte site uit, of je logt in op de verkeerde. Pas daarom na het terugzetten de adressen aan:
wp search-replace 'https://example.com' 'https://test.example.com' --all-tables --dry-run
wp search-replace 'https://example.com' 'https://test.example.com' --all-tablesOf met een zoek-en-vervangplugin die geserialiseerde gegevens begrijpt (les 3.2). Zet ook meteen zoekmachines ontmoedigen aan (les 2.4) of een wachtwoord op de testsite, en zorg dat de testsite geen mail naar echte klanten stuurt (les 8.3).
De database met de hand terugzetten
Heb je een .sql-bestand (uit een back-up of een export), dan zet je dat zo terug:
- Maak een lege database en een gebruiker (les 2.3), of leeg de bestaande (alleen als je zeker bent).
- Importeer het bestand in phpMyAdmin (tabblad Importeren). Bij grote bestanden kan phpMyAdmin vastlopen; dan gebruik je de importfunctie van je paneel of de opdrachtregel (
wp db import back-up.sqlofmysql). - Controleer in wp-config.php dat de databasegegevens kloppen.
- Controleer het tabelvoorvoegsel: komt het in de back-up (
wp_) overeen met$table_prefixin wp-config.php? Zo niet, dan ziet WordPress een lege installatie en wil hij opnieuw installeren.
De controlelijst na het terugzetten
Een terugzetting is pas geslaagd als de site echt werkt. Loop na:
- De homepage en een paar gewone pagina's en berichten openen, in een privévenster.
- Afbeeldingen: staan ze er (dus zat uploads in de back-up)?
- Inloggen in het beheer.
- De belangrijkste functies: een formulier versturen, iets in de winkelwagen leggen, zoeken.
- Permalinks: werken alle pagina's, of krijg je een 404 behalve op de homepage? Dan bij Instellingen > Permalinks één keer opslaan (les 2.4).
- Plugins en thema actief en bijgewerkt.
- De versie: is dit echt de inhoud van de datum die je verwachtte?
Noteer hoe lang de terugzetting duurde. Dat is je echte hersteltijd: hoe lang je site er bij een probleem uit ligt.
Hoe vaak testen
Een vuistregel: test minstens een keer per kwartaal (les 9.4), en na elke verandering in je back-upsysteem (een nieuwe plugin, een andere hoster, een veel grotere site). Wissel af: de ene keer de back-up van de hoster, de andere keer je eigen kopie buiten de server (les 8.1).
In de praktijk: zo ziet het eruit in een paneel
Als voorbeeld gebruiken we WebOké Backups en DirectAdmin. Bij andere hosters heten de knoppen anders, maar de keuzes zijn dezelfde: wat zet je terug, en waar.
- Maak eerst het testsubdomein aan in DirectAdmin (Subdomeinbeheer), met een certificaat.
- Kies in WebOké Backups een back-up van een paar dagen geleden en kies ervoor de bestanden en de database naast de huidige site terug te zetten, op de testplek.
- Pas in de teruggezette database de adressen aan naar het testsubdomein.
- Loop de controlelijst na.
Samenvatting
- Een back-up is pas waardevol als hij terug kan; test het terugzetten.
- Kies wat je terugzet; bestanden en database horen van hetzelfde moment te zijn. Wat na de back-up gebeurde, ben je kwijt.
- Zet een back-up naast je site terug om te testen of één ding te redden, en pas daarna de adressen aan.
- Let bij een database-import op het tabelvoorvoegsel en de gegevens in wp-config.php.
- Loop na elke terugzetting een vaste controlelijst na, en noteer hoe lang het duurde.
Quiz
Opdracht
Opdracht D8.2: Een back-up terugzetten in staging. Zet een back-up van een paar dagen oud terug op een testsubdomein van je eigen domein (bijvoorbeeld herstel.example.com), naast je echte site. Pas de adressen aan, zet zoekmachines ontmoedigen aan of een wachtwoord op de testplek, en loop de controlelijst van deze les na. Vink elk punt af. Noteer: welke back-up (bron en datum) je gebruikte, hoe lang het terugzetten duurde, wat er niet goed ging en hoe je dat oploste. Laat de testsite staan voor opdracht A8.3 en verwijder hem daarna.
Opdracht D8.2: Een back-up terugzetten in staging
Deze opdracht doe je zelf; niemand kijkt hem na. Vink af wat je gedaan hebt en markeer de opdracht als gedaan.
Noem een tijdsduur en minstens één bevinding. "Niets" mag ook, als je erbij zet wat je hebt gecontroleerd.
Je vinkjes en aantekeningen blijven alleen in deze browser; we sturen ze nergens heen. Ben je aangemeld, dan bewaren we in Mijn cursussen alleen dat je de opdracht gedaan hebt.
Verder lezen
Deze artikelen beschrijven de stappen in de panelen van WebOké; in andere panelen werken ze vergelijkbaar.
- DirectAdmin handleiding 16.3: Een DirectAdmin-back-up terugzetten
- DirectAdmin handleiding 16.5: Kan dit ook in Mijn WebOké? WebOké Backups
- WebOké handleiding 6.10: WebOké Backups: bestanden terugzetten
- WebOké Backups: een backup bekijken, terugzetten of downloaden
- DirectAdmin handleiding 12.5: Een database importeren, ook grote bestanden
- DirectAdmin handleiding 4.5: Subdomeinen aanmaken en verwijderen
