mysqldump juhend: MySQL andmebaasi varundamine ja taastamine

mysqldump: Kuidas kasutada ja parimad praktikad

1. Sissejuhatus

Andmebaaside varundamine ja taastamine on andmehalduse alustala ning usaldusväärse töö tagamiseks hädavajalik. MySQL-i tööriist “mysqldump” on laialdaselt kasutusel andmebaaside tõhusaks ja paindlikuks varundamiseks. See juhend selgitab põhjalikult mysqldump’i põhilist kasutamist, täpsemate valikute rakendamist, taastamismeetodeid ja vigade otsingut. Artikli lõpus tutvustame ka parimaid praktikaid ja viiteressursse, et aidata teil mysqldump’i selgeks õppida.

2. Mis on mysqldump?

2.1 mysqldump’i ülevaade

mysqldump on käsurea tööriist MySQL andmebaaside varukoopiate loomiseks. See võimaldab dumpida terve andmebaasi, kindlad tabelid või teatud tingimustele vastavad andmed SQL-skriptina. Seda dump-faili kasutatakse andmete taastamiseks või andmete migreerimiseks uude serverisse.

2.2 Kasutusstsenaariumid

  • Varundamine: Andmekao või süsteemirikete puhuks võetakse regulaarseid varukoopiaid.
  • Andmete migreerimine: Kasutatakse andmebaaside migreerimiseks serverite vahel või andmete kopeerimiseks arenduskeskkonda.
  • Andmete analüüs: Teatud andmekogumite ekstraheerimiseks analüüsiks ja valideerimiseks.

3. Põhiline kasutamine

3.1 Põhiline käsukonstruktsioon

mysqldump’i põhiline käsukonstruktsioon on järgmine:

mysqldump -u kasutajanimi -p andmebaasi_nimi > väljundfaili_nimi.sql
  • -u kasutajanimi: Andmebaasile ligipääsu kasutajanimi.
  • -p: Küsimus parooli sisestamiseks.
  • andmebaasi_nimi: Varundatava andmebaasi nimi.
  • > väljundfaili_nimi.sql: Dump-faili salvestamise asukoht.

3.2 Kasutaja autentimise valikud

  • -h hostinimi: Andmebaasiserveri hostinimi (vaikimisi localhost).
  • -P pordi_number: Ühendatav pordi number (vaikimisi 3306).

3.3 Näide: Kogu andmebaasi varundamine

mysqldump -u root -p mydatabase > backup.sql

See käsk varundab kõik mydatabase’i andmed faili backup.sql. Varundusfailide nimesse kuupäeva lisamine aitab versioonihaldust ja ajaloo jälgimist.

4. Peamiste valikute selgitus

4.1 --all-databases (-A)

See valik varundab kõik andmebaasid korraga. See on kasulik, kui soovite varundada kogu serveri.

mysqldump -u root -p --all-databases > all_databases_backup.sql

4.2 --no-data (-d)

Kasutatakse ainult tabelite skeemi varundamiseks, ilma andmeteta. Näiteks tabelistruktuuri saamiseks arenduskeskkonna seadistamisel.

mysqldump -u root -p mydatabase --no-data > schema_only_backup.sql

4.3 --where (-w)

Kasutatakse, kui soovite varundada ainult teatud tingimustele vastavaid andmeid. Näiteks ainult nende kirjed, kus veerg is_active on 1:

mysqldump -u root -p mydatabase --where="is_active=1" > filtered_data_backup.sql

4.4 --ignore-table

Kasutatakse teatud tabelite varundamisest välja jätmiseks. Kasulik, kui on tabeleid, mida te ei soovi varundada.

mysqldump -u root -p mydatabase --ignore-table=mydatabase.table1 > partial_backup.sql

5. Praktilised näited

5.1 Ainult kindla tabeli dumpimine

Ainult kindla tabeli varundamiseks määrake tabeli nimi pärast andmebaasi nime.

mysqldump -u root -p mydatabase table1 > table1_backup.sql

See käsk salvestab ainult table1’i andmed faili table1_backup.sql.

5.2 Ainult andmete / ainult skeemi dumpimine

  • Ainult andmed: mysqldump -u root -p mydatabase --no-create-info > data_only_backup.sql Varundab ainult andmed, ilma tabelistruktuurita.
  • Ainult skeem:
    bash mysqldump -u root -p mydatabase --no-data > schema_only_backup.sql
    Varundab ainult tabelite skeemi.

5.3 Tingimuslik dump

Ainult teatud tingimustele vastavate andmete varundamiseks kasutage valikut --where.

mysqldump -u root -p mydatabase --where="created_at >= '2023-01-01'" > recent_data_backup.sql

See käsk varundab ainult need andmed, kus created_at on alates 1. jaanuarist 2023.

6. Taastamismeetodid

mysqldump’iga varundatud andmebaasi taastamiseks kasutage käsku mysql. Taastamine on protsess, mille käigus andmebaasi seisund varundusfaili abil taastatakse.

6.1 Taastamise põhiline konstruktsioon

mysql -u kasutajanimi -p andmebaasi_nimi < dumpfail.sql
  • -u kasutajanimi: Andmebaasiga ühenduv kasutajanimi.
  • -p: Küsimus parooli sisestamiseks.
  • andmebaasi_nimi: Taastamise sihtandmebaasi nimi.
  • < dumpfail.sql: Taastamiseks kasutatav dump-fail.

6.2 Näide: Taastamise käivitamine

mysql -u root -p mydatabase < backup.sql

See käsk taastab andmed failist backup.sql andmebaasi mydatabase.

6.3 Tähelepanekud taastamisel

  • Kui taastatavat andmebaasi ei eksisteeri, tuleb see enne luua.
  • Suure andmemahu taastamine võib võtta aega, seetõttu on oluline eelnev planeerimine.

7. mysqldump’i parimad praktikad

7.1 Varundamise ajastamine

Skriptige mysqldump ja kasutage ajastajat (nt cron), et varundamist regulaarselt automatiseerida. Järgmine shelliskripti näide teeb iga päev keskööl kõigi andmebaaside varukoopia:

#!/bin/bash
mysqldump -u root -p'password' --all-databases > /path/to/backup/all_databases_$(date +%F).sql

7.2 Varundusfailide krüpteerimine

Kuna varundusfailid sisaldavad tundlikku teavet, on soovitatav neid krüpteerida tööriistadega nagu gpg.

gpg -c /path/to/backup/all_databases_$(date +%F).sql

7.3 Versioonidevaheline ühilduvus

Andmete migreerimisel erinevate MySQL versioonide vahel tuleb olla tähelepanelik ühilduvusprobleemide suhtes. Enne versiooniuuendust simuleerige varundamis- ja taastamisprotsessi testkeskkonnas ning kontrollige ühilduvust.

  1. Tabelide definitsioonide taastamine: mysqldump --all-databases --no-data --routines --events > dump-defs.sql See käsk dumpib ainult tabelistruktuurid ja taastab need uues versioonikeskkonnas ühilduvuse kontrollimiseks.
  2. Andmete taastamine: mysqldump --all-databases --no-create-info > dump-data.sql Kui tabelide definitsioonid on ühilduvad, taastage ainult andmed.
  3. Testimine testkeskkonnas:
    Versioonidevahelise ühilduvuse kontrollimiseks viige testkeskkonnas läbi varundamine ja taastamine ning veenduge, et kõik töötab korralikult, enne kui migreerite tootmiskeskkonda.

7.4 Varundusfailide hoiustamine ja valideerimine

  • Varukoopiate turvaline hoiustamine:
    Salvestage varundusfailid välisele salvestusruumile või pilve ja värskendage neid regulaarselt. Offsite hoiustamine kaitseb andmeid füüsiliste kahjustuste eest.
  • Taastamise regulaarne valideerimine:
    Viige regulaarselt läbi taastamisteste, et veenduda varukoopiate õiges taastamises. Oluline on mitte unustada taastamise valideerimist juhuks, kui varukoopiad on kehtetud.

8. Vigade otsing

8.1 Levinumad vead ja nende lahendamine

  • Viga: @@GLOBAL.GTID_PURGED cannot be changed:
    See viga ilmneb MySQL 8.0-s, kui tekivad GTID-ga seotud probleemid. Vältimiseks kasutage valikut --set-gtid-purged=COMMENTED, et kommenteerida GTID seaded välja. mysqldump -u root -p mydatabase --set-gtid-purged=COMMENTED > backup.sql
  • Viga: Kettaruum puudub:
    Kui suure andmebaasi varundamisel kettaruumist puudu jääb, tihendage varukoopia või muutke salvestusasukohta. Tihendage varukoopia gzip’iga järgmiselt: mysqldump -u root -p mydatabase | gzip > backup.sql.gz
  • Viga: Ebapiisavad õigused:
    Kui andmebaasikasutajal pole piisavaid õigusi, nurjub varundamine või taastamine. Andke vajalikud õigused (SELECT, LOCK TABLES, SHOW VIEW jne) ja proovige uuesti.

8.2 Versioonide ühilduvusprobleemid

Erinevate MySQL versioonide vahelised ühilduvusprobleemid lahendatakse testimisega enne versiooniuuendust. Eriti MySQL 5.7-lt 8.0-le migreerimisel on soovitatav kasutada valikut --no-data, et taastada ainult tabelide definitsioonid ja kontrollida ühilduvust.

  • Mitteühilduvuse testimine:
    Enne versiooniuuendust simuleerige migreerimist testkeskkonnas, et tuvastada potentsiaalsed probleemid. Pöörake tähelepanu mitteühilduvatele funktsioonidele ja süntaksile ning vajadusel muutke SQL-skripti.

9. Kokkuvõte

mysqldump on usaldusväärne ja võimas tööriist MySQL andmebaaside varundamiseks ja taastamiseks. Selles artiklis käsitleti põhjalikult selle põhilist kasutamist, täpsemaid valikuid, parimaid praktikaid ja vigade otsingut. Neid teadmisi rakendades saate tõhusalt kaitsta ja hallata andmebaase mysqldump’i abil.

Parimate praktikate (nagu varundamise ajastamine ja failide krüpteerimine) rakendamine tagab andmete turvalisuse ja suurendab andmebaasi toimimise usaldusväärsust. Kasutage mysqldump’i õigesti, et olla valmis andmebaasiprobleemideks.

10. Viited ja lisamaterjalid

Tutvuge selle ressursiga, et mysqldump’i kohta veelgi sügavamalt õppida ja seda praktikas rakendada. Samuti viige läbi regulaarseid varundamis- ja taastamisteste, et säilitada andmebaasi turvalisus ja olla valmis võimaliku andmekao puhuks.