MySQL mysqldump: Kuidas varundada ja dumpida kindlaid tabeleid

1. Sissejuhatus

MySQL on andmebaaside haldussüsteem, mida kasutatakse laialdaselt paljudes veebisaitides ja rakendustes. Nende tööriistade hulgas on mysqldump käsk väga oluline, kui on vaja teha andmebaasi varukoopiaid või migreerida andmeid. Eriti kasulik on see siis, kui soovite varundada ainult kindlaid tabeleid suurest andmebaasist.

Selles artiklis selgitame üksikasjalikult, kuidas kasutada mysqldump käsku kindlate tabelite dumpimiseks. Selgitused on lihtsad algajatele, kuid toome välja ka edasijõudnutele sobivaid valikuid ja praktilisi näiteid.

2. mysqldump käsu põhistruktuur

Alustuseks vaatame mysqldump käsu kõige põhilisemat kasutust. See käsk võimaldab dumpida (varundada) kas kogu andmebaasi või ainult kindlate tabelite struktuuri ja andmeid.

Põhisüntaks

Kasutajanime, parooli, andmebaasi nime ja tabeli nime määramisega saab varundada konkreetse tabeli.

mysqldump -u kasutajanimi -p andmebaasi_nimi tabeli_nimi > valjundfail.sql
  • -u: määrab andmebaasi kasutajanime
  • -p: küsib parooli (sisestatakse käsureal)
  • andmebaasi_nimi: selle andmebaasi nimi, millest dump tehakse
  • tabeli_nimi: konkreetse dumpitava tabeli nimi
  • > valjundfail.sql: väljundfaili nimi

Levinud valikud

  • --single-transaction: varundab InnoDB tabeleid, säilitades transaktsioonide järjepidevuse
  • --skip-lock-tables: väldib tabelite lukustamist varundamise ajal

3. Kuidas dumpida kindlat tabelit

Ühe tabeli määramine

Konkreetse tabeli varundamiseks tuleb tabeli nimi määrata pärast andmebaasi nime. Näiteks dumpime ainult users tabeli:

mysqldump -u root -p my_database users > users_dump.sql

See käsk salvestab my_database andmebaasi users tabeli struktuuri ja andmed faili users_dump.sql.

Mitme tabeli määramine

Kui soovite korraga varundada mitu tabelit, eraldage tabelite nimed tühikuga:

mysqldump -u root -p my_database users orders products > multiple_tables_dump.sql

Selles näites dumpitakse korraga kolm tabelit: users, orders ja products.

Tabeliloendi kasutamine

Kui tabeleid on palju, on käsitsi kõikide nimede kirjutamine tülikas. Sellisel juhul saab kasutada SHOW TABLES käsku või skripti, et genereerida nimekiri automaatselt.

mysql -u root -p my_database -N -e "SHOW TABLES LIKE 'hoge%'" > table_list.txt
mysqldump -u root -p my_database `cat table_list.txt` > partial_dump.sql

Nii saate dumpida ainult need tabelid, mis vastavad määratud mustrile.

4. Valikud ja edasijõudnud kasutus

mysqldump pakub mitmeid valikuid, et kohandada varundamist vastavalt vajadusele. Toome mõned näited:

Ainult struktuuri dump

Kui soovite dumpida ainult tabeli struktuuri, ilma andmeteta, kasutage --no-data valikut:

mysqldump -u root -p my_database --no-data users > users_structure.sql

Ainult andmete dump

Kui soovite dumpida ainult andmed, ilma tabeli struktuurita, kasutage --no-create-info valikut:

mysqldump -u root -p my_database --no-create-info users > users_data.sql

Dump tingimuste alusel

Valik --where võimaldab dumpida ainult tingimustele vastavaid ridu. Näiteks ainult need, mille id on suurem kui 100:

mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql

5. Praktilised näited

Näide 1: ühe tabeli varundamine

mysqldump -u root -p employees salary > salary_dump.sql

Näide 2: tingimuslik dump

mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql

6. Tähtsad märkused ja parimad praktikad

Tabelilukkude probleem

mysqldump võib dumpimise ajal tabeleid lukustada. Töötavas süsteemis on soovitatav kasutada --single-transaction ja vajadusel ka --skip-lock-tables.

Suurte andmebaaside dump

Suurte andmebaaside dumpimine võib võtta kaua aega. Üks lahendus on kasutada gzip tihendust reaalajas:

mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz

7. Kokkuvõte

Selles artiklis nägime, kuidas dumpida kindlaid tabeleid mysqldump käsuga. Selgitasime põhikasutust, tingimuslikku dumpimist, ainult struktuuri või andmete dumpimist ning tõime näiteid skriptide kasutamisest. mysqldump on võimas tööriist, mis võimaldab andmebaaside varundamist ja migreerimist turvaliselt ja paindlikult.

Järgmises artiklis käsitleme veelgi keerukamaid mysqldump valikuid ning võrdleme seda teiste varundustööriistadega.