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 tehaksetabeli_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.