Paano Gamitin ang mysqldump para Mag-backup ng mga Tiyak na Talahanayan sa MySQL

1. Panimula

MySQL ay isang malawak na ginagamit na sistema ng pamamahala ng database para sa maraming website at aplikasyon. Kabilang sa mga tool nito, ang utos na mysqldump ay mahalaga para sa paglikha ng backup ng database at paghawak ng mga migration. Ang utos na ito ay lalo na kapaki-pakinabang kapag kailangan mong i-backup lamang ang mga tiyak na talahanayan mula sa isang malaking database.

Sa artikulong ito, ipapaliwanag namin nang detalyado kung paano i-dump ang mga tiyak na talahanayan gamit ang utos na mysqldump. Ang gabay ay angkop para sa mga baguhan, ngunit tatalakayin din namin ang mga advanced na opsyon at praktikal na mga kaso ng paggamit para sa mga intermediate na gumagamit.

2. Pangunahing Sintaks ng utos na mysqldump

Una, balikan natin ang pangunahing paggamit ng utos na mysqldump. Ang utos na ito ay ginagamit upang i-dump (i-backup) ang estruktura at data ng isang buong database o mga napiling talahanayan.

Pangunahing Sintaks

Sa pamamagitan ng pagtukoy ng username, password, pangalan ng database, at pangalan ng talahanayan, maaari kang mag-backup ng isang tiyak na talahanayan tulad ng ipinapakita sa ibaba:

mysqldump -u username -p database_name table_name > output_file.sql
  • -u : Tinukoy ang username ng database
  • -p : Hihingin ang password ng database
  • database_name : Ang pangalan ng database na i-dump
  • table_name : Ang pangalan ng tiyak na talahanayan na i-dump
  • > output_file.sql : Ang output file kung saan ise-save ang dump

Karaniwang Ginagamit na mga Opsyon

  • --single-transaction : Tinitiyak ang pagkakakonsistente ng transaksyon kapag nagba-backup ng mga InnoDB na talahanayan
  • --skip-lock-tables : Pinipigilan ang pag-lock ng mga talahanayan habang isinasagawa ang backup

3. Pag-dump ng mga Tiyak na Talahanayan

Pag-dump ng Isang Talahanayan

Upang mag-backup lamang ng isang talahanayan, tukuyin ang pangalan ng talahanayan pagkatapos ng pangalan ng database. Halimbawa, ang sumusunod na utos ay nagda-dump lamang ng talahanayang users:

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

Ang utos na ito ay nagse-save ng estruktura at data ng talahanayang users mula sa database na my_database papunta sa users_dump.sql.

Pag-dump ng Maramihang Talahanayan

Kung nais mong mag-backup ng maramihang talahanayan nang sabay-sabay, ilista ang mga pangalan ng talahanayan na pinaghihiwalay ng mga puwang:

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

Ang utos na ito ay nagda-dump ng mga talahanayan na users, orders, at products nang sabay.

Paggamit ng Listahan ng Talahanayan

Kapag nagtatrabaho sa maraming talahanayan, ang manu-manong pag-type ng lahat ng pangalan ng talahanayan ay maaaring maging magastos sa oras. Sa ganitong kaso, maaari mong gamitin ang utos na SHOW TABLES o isang script upang awtomatikong bumuo ng listahan ng talahanayan para sa pag-dump:

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

Ang pamamaraang ito ay nagbibigay-daan sa iyo na epektibong i-backup lamang ang mga talahanayan na tumutugma sa isang tiyak na pattern.

4. Mga Opsyon at Advanced na Paggamit

Ang utos na mysqldump ay may kasamang iba’t ibang mga opsyon na nagbibigay-daan sa iyo na i-customize ang mga backup ayon sa iyong pangangailangan. Narito ang ilang kapaki-pakinabang na halimbawa.

Pag-dump ng Estruktura Lamang

Kung kailangan mo lamang ang estruktura ng talahanayan nang walang data, gamitin ang opsyong --no-data:

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

Ang utos na ito ay nagda-dump lamang ng estruktura ng talahanayang users.

Pag-dump ng Data Lamang

Kung nais mo lamang ang data nang walang estruktura ng talahanayan, gamitin ang opsyong --no-create-info:

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

Ang utos na ito ay nagda-dump lamang ng data ng talahanayang users.

Kondisyonal na Pag-dump

Maaari mong gamitin ang opsyong --where upang i-dump lamang ang mga hilera na tumutugma sa tiyak na kondisyon. Halimbawa, upang i-dump lamang ang mga hilera kung saan ang id ay higit sa 100:

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

Nakakatulong ito para sa pag-backup lamang ng kinakailangang subset ng data mula sa malalaking talahanayan.

5. Praktikal na Mga Halimbawa

Halimbawa 1: Pag-backup ng Isang Talahanayan

Halimbawa, upang i-backup lamang ang talahanayang salary mula sa database na employees:

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

Halimbawa 2: Pag-backup ng Data na may mga Kondisyon

Upang i-dump lamang ang isang bahagi ng data, gamitin ang opsyong --where. Halimbawa, upang i-back up lamang ang mga hilera kung saan ang id ay higit sa 100 mula sa talang users:

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

6. Mga Pinakamainam na Kasanayan at Pagsasaalang-alang

Pag-iwas sa mga Isyu sa Pag-lock ng Talahanayan

Kapag gumagamit ng mysqldump, maaaring ma-lock ang mga talahanayan, na pumipigil sa ibang operasyon. Sa mga production system, inirerekomenda na gamitin ang opsyong --single-transaction upang maiwasan ang downtime. Para sa mga InnoDB na talahanayan, ang pagsasama nito sa --skip-lock-tables ay mas ligtas pa.

Paghawak sa Malalaking Dami ng Data

Para sa napakalaking mga database, maaaring tumagal nang matagal ang proseso ng dump. Isang karaniwang gawain ay i-compress ang output nang real time gamit ang gzip:

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

Ang utos na ito ay nakakatipid ng puwang sa disk sa pamamagitan ng pag-compress ng dump habang ito ay nililikha.

7. Konklusyon

Sa artikulong ito, tinalakay namin kung paano i-dump ang mga tiyak na talahanayan gamit ang utos na mysqldump. Mula sa pangunahing syntax hanggang sa mga conditional dump, export na structure-only o data-only, at pati na rin ang automation gamit ang mga script, sinuri namin ang malawak na hanay ng mga kaso ng paggamit. Ang utos na mysqldump ay isang makapangyarihang kasangkapan na, kapag ginamit nang tama, nagpapadali ng mga backup at migration ng database.

Sa susunod na artikulo, susuriin natin ang mas advanced na mga opsyon ng mysqldump at ihahambing ito sa iba pang mga tool sa backup ng database.