Medan mysqldump
verktyget är den föredragna säkerhetskopieringsmetoden för en MariaDB- eller MySQL-databas eller databassystem, det fungerar bara när databasservern är tillgänglig och körs. Om databasen inte kan startas eller värdsystemet är otillgängligt kan databasen fortfarande kopieras direkt.
En fysisk backup är ofta nödvändigt i situationer när du bara har tillgång till en återställningsmiljö (som Finnix) där du monterar ditt systems diskar som externa lagringsenheter. Om du vill läsa om logiska säkerhetskopior med mysqldump
,se vår guide om ämnet.
För att förenkla kommer namnet MySQL att användas i den här guiden men instruktionerna kommer att fungera för både MySQL och MariaDB.
Obs Stegen i den här guiden kräver root-privilegier. Logga in som root-användare med su -
innan du börjar.
Skapa en säkerhetskopia
-
Om du inte kör i återställningsläge (en Finnix-session), stoppa
mysql
tjänst:systemctl stop mysql
-
Leta reda på din databaskatalog. Det ska vara
/var/lib/mysql/
på de flesta system men om den katalogen inte finns, undersök/etc/mysql/my.cnf
för en sökväg till datakatalogen. -
Skapa en katalog för att lagra dina säkerhetskopior. Den här guiden kommer att använda
/opt/db-backups
men du kan ändra detta för att passa dina behov:mkdir /opt/db-backups
-
Kopiera MySQL:s datakatalog till en lagringsplats.
cp
kommando,rsync
, eller andra metoder kommer att fungera bra, men vi användertar
för att rekursivt kopiera och gzipa säkerhetskopian på en gång. Ändra databaskatalogen, backupfilnamnet och målkatalogen efter behov;-$(date +%F)
tillägg till kommandot kommer att infoga en tidsstämpel i filnamnet.tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
-
Starta om MySQL-tjänsten:
systemctl restart mysql
Återställ en säkerhetskopia
-
Ändra din arbetskatalog till en plats där du kan extrahera tarballen som skapats ovan. Den aktuella användarens hemkatalog används i detta exempel:
cd
-
Stoppa
mysql
tjänst:systemctl stop mysql
-
Extrahera tarballen till arbetskatalogen. Ändra tarballens filnamn i kommandot till det med datumet du vill återställa till.
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
-
Flytta det aktuella innehållet i
/var/lib/mysql
till en annan plats om du vill behålla dem av någon anledning, eller ta bort dem helt. Skapa en ny tommysql
mapp för att återställa din säkerhetskopierade DMBS till.mv /var/lib/mysql /var/lib/mysql-old mkdir /var/lib/mysql
-
Kopiera det säkerhetskopierade databassystemet till den tomma mappen:
mv ~/var/lib/mysql/* /var/lib/mysql
-
Ställ in rätt behörigheter för filerna du just återställde:
chown -R mysql:mysql /var/lib/mysql
-
Starta om MySQL-tjänsten:
systemctl restart mysql
Mer information
Du kanske vill konsultera följande resurser för ytterligare information om detta ämne. Även om dessa tillhandahålls i hopp om att de kommer att vara användbara, vänligen observera att vi inte kan garantera noggrannheten eller aktualiteten hos externt värdmaterial.
- Översikt över säkerhetskopiering och återställning; MariaDB bibliotek
- Säkerhetskopieringsmetoder för databas; MySQL-referensmanual