Terwijl de mysqldump
tool is de geprefereerde back-upmethode voor een MariaDB- of MySQL-database of databasesysteem. Het werkt alleen als de databaseserver toegankelijk is en actief is. Als de database niet kan worden gestart of het hostsysteem niet toegankelijk is, kan de database toch rechtstreeks worden gekopieerd.
Een fysieke back-up is vaak nodig in situaties waarin je alleen toegang hebt tot een herstelomgeving (zoals Finnix) waar je de schijven van je systeem koppelt als externe opslagapparaten. Als u meer wilt lezen over logische back-ups met behulp van mysqldump
,zie onze gids over dit onderwerp.
Ter vereenvoudiging wordt in deze handleiding de naam MySQL gebruikt, maar de instructies werken voor zowel MySQL als MariaDB.
Opmerking Voor de stappen in deze handleiding zijn rootrechten vereist. Log in als rootgebruiker met su -
voordat je begint.
Maak een back-up
-
Als u niet in herstelmodus werkt (een Finnix-sessie), stop dan de
mysql
dienst:systemctl stop mysql
-
Zoek uw databasedirectory. Het moet
/var/lib/mysql/
. zijn op de meeste systemen, maar als die map niet bestaat, onderzoek dan/etc/mysql/my.cnf
voor een pad naar de gegevensmap. -
Maak een map om uw back-ups op te slaan. Deze handleiding gebruikt
/opt/db-backups
maar u kunt dit aanpassen aan uw behoeften:mkdir /opt/db-backups
-
Kopieer de gegevensmap van MySQL naar een opslaglocatie. De
cp
commando,rsync
, of andere methoden werken prima, maar we gebruikentar
om de back-up recursief te kopiëren en in één keer te gzip. Wijzig de databasedirectory, back-upbestandsnaam en doeldirectory indien nodig; de-$(date +%F)
naast de opdracht wordt een tijdstempel in de bestandsnaam ingevoegd.tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
-
Start de MySQL-service opnieuw:
systemctl restart mysql
Een back-up herstellen
-
Verander uw werkmap naar een plaats waar u de hierboven gemaakte tarball kunt extraheren. In dit voorbeeld wordt de basismap van de huidige gebruiker gebruikt:
cd
-
Stop de
mysql
dienst:systemctl stop mysql
-
Pak de tarball uit in de werkmap. Wijzig de bestandsnaam van de tarball in de opdracht in die met de datum waarnaar u wilt herstellen.
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
-
Verplaats de huidige inhoud van
/var/lib/mysql
naar een andere locatie als u ze om welke reden dan ook wilt bewaren, of helemaal wilt verwijderen. Maak een nieuwe legemysql
map waarin u uw geback-upte DMBS wilt herstellen.mv /var/lib/mysql /var/lib/mysql-old mkdir /var/lib/mysql
-
Kopieer het geback-upte databasesysteem naar de lege map:
mv ~/var/lib/mysql/* /var/lib/mysql
-
Stel de juiste machtigingen in voor de bestanden die u zojuist hebt hersteld:
chown -R mysql:mysql /var/lib/mysql
-
Start de MySQL-service opnieuw:
systemctl restart mysql
Meer informatie
U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.
- Overzicht back-up en herstel; MariaDB-bibliotheek
- Databaseback-upmethoden; MySQL-referentiehandleiding