sql >> Databasteknik >  >> RDS >> Mysql

Skapa fysiska säkerhetskopior av dina MariaDB- eller MySQL-databaser

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

  1. Om du inte kör i återställningsläge (en Finnix-session), stoppa mysql tjänst:

    systemctl stop mysql
    
  2. 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.

  3. 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
    
  4. Kopiera MySQL:s datakatalog till en lagringsplats. cp kommando, rsync , eller andra metoder kommer att fungera bra, men vi använder tar 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/*
    
  5. Starta om MySQL-tjänsten:

    systemctl restart mysql
    

Återställ en säkerhetskopia

  1. Ä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
    
  2. Stoppa mysql tjänst:

    systemctl stop mysql
    
  3. 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 .
    
  4. 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 tom mysql mapp för att återställa din säkerhetskopierade DMBS till.

    mv /var/lib/mysql /var/lib/mysql-old
    mkdir /var/lib/mysql
    
  5. Kopiera det säkerhetskopierade databassystemet till den tomma mappen:

    mv ~/var/lib/mysql/* /var/lib/mysql
    
  6. Ställ in rätt behörigheter för filerna du just återställde:

    chown -R mysql:mysql /var/lib/mysql
    
  7. 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

  1. Hur FORMAT() fungerar i MariaDB

  2. Hur man uppdaterar tabellen i oracle

  3. Använder Room DB i biblioteksprojekt

  4. Hur kör man en .sql-fil med powershell?