mysqldump භාවිතයෙන් විශේෂිත වගු ඩම්ප් කිරීම: උදාහරණ සහ හොඳම ක්‍රියාපටිපාටි සමඟ සම්පූර්ණ මාර්ගෝපදේශය

1. හැඳින්වීම

MySQL යනු බොහෝ වෙබ් අඩවි සහ යෙදුම් භාවිතා කරන දත්ත ගබඩා කළමනාකරණ පද්ධතියකි. එහි මෙවලම් අතර, දත්ත ගබඩා බැකප් හෝ මාරු කිරීමේදී “mysqldump” විධානය විශේෂයෙන් වැදගත් වේ. විශේෂයෙන්, විශාල දත්ත ගබඩාවකින් නියමිත වගු පමණක් බැකප් කිරීමට අවශ්‍ය වන විට, මෙම විධානය ඉතා ප්‍රයෝජනවත් වේ.

මෙම ලිපියේ, mysqldump විධානය භාවිතා කර නියමිත වගු ඉවත් කිරීමේ ක්‍රමය පිළිබඳව සවිස්තරාත්මකව පැහැදිලි කරමු. මාර්ගෝපදේශය ආරම්භකයන්ට පහසු ලෙස අවබෝධ කරගත හැකි ලෙස සැලසුම් කර ඇති අතර, මධ්‍යම මට්ටමේ විකල්ප සහ උසස් භාවිත තාක්ෂණයන් ද හඳුන්වා දේ.

2. mysqldump විධානයේ මූලික ව්‍යවස්ථාව

පළමුව, mysqldump විධානයේ මූලික භාවිතය සමාලෝචනය කරමු. මෙම විධානය සම්පූර්ණ දත්ත ගබඩාවක් හෝ නියමිත වගු වල ව්‍යුහය හා දත්ත ඉවත් (බැකප්) කිරීමට භාවිතා වේ.

මූලික ව්‍යවස්ථාව

පහත පරිදි පරිශීලක නාමය, මුරපදය, දත්ත ගබඩා නාමය සහ වගු නාමය නිරූපණය කිරීමෙන්, නියමිත වගුවක් බැකප් කළ හැකිය.

mysqldump -u username -p database_name table_name > output_file.sql
  • -u : දත්ත ගබඩාවට ප්‍රවේශ වීමට භාවිතා කරන පරිශීලක නාමය නිරූපණය කරයි
  • -p : මුරපදය නිරූපණය කරයි (ඔබට එය ඇතුළත් කිරීමට ඉල්ලීමක් ලැබේ)
  • database_name : ඉවත් කිරීමට (dump) දත්ත ගබඩාවේ නාමය
  • table_name : ඉවත් කිරීමට (dump) නියමිත වගුව
  • > output_file.sql : ප්‍රතිඵල ගොනුව නිරූපණය කරයි

සාමාන්‍යයෙන් භාවිතා වන විකල්ප

  • --single-transaction : InnoDB වගු බැකප් කරන විට ගනුදෙනුකාරක සමග අඛණ්ඩතාවය තහවුරු කරයි
  • --skip-lock-tables : බැකප් කිරීමේදී වගු අගුළු දැමීමෙන් වැළකී සිටී

3. නියමිත වගු ඉවත් කිරීමේ ක්‍රමය

එක වගුවක් ඉවත් කිරීම

නියමිත වගුවක් පමණක් බැකප් කිරීමට, දත්ත ගබඩා නාමය පසු වගු නාමය නිරූපණය කරන්න. පහත උදාහරණයේ users වගුව පමණක් ඉවත් කර ඇත.

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

මෙම විධානය my_database දත්ත ගබඩාවේ users වගුවේ ව්‍යුහය හා දත්ත users_dump.sql ගොනුවට සුරකින්නෙකි.

බහු වගු ඉවත් කිරීම

එකවර බහු වගු බැකප් කිරීමට අවශ්‍ය නම්, වගු නාමයන් ඉඩක් (space) මගින් වෙන් කර නිරූපණය කරන්න.

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

ඉහත උදාහරණයේ users, orders, products යන වගු තුනම එකවර ඉවත් කර ඇත.

වගු ලැයිස්තුවක් භාවිතා කර ඉවත් කිරීම

විශාල සංඛ්‍යාවක වගු ඉවත් කිරීමේදී, සියලු වගු නාමයන් අතින් නිරූපණය කිරීම අධික වේ. එවැනි අවස්ථාවල, SHOW TABLES විධානය හෝ ස්ක්‍රිප්ට් එකක් භාවිතා කර ඉවත් කිරීමට අවශ්‍ය වගු ලැයිස්තුව ස්වයංක්‍රීයව ජනනය කළ හැකිය.

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

මෙම ක්‍රමය නියමිත රටාවට ගැළපෙන වගු පමණක් කාර්යක්ෂමව බැකප් කිරීමට ඉඩ සලසයි.

4. විකල්ප සහ උසස් භාවිතය

mysqldump ඔබේ අවශ්‍යතා අනුව බැකප් සකස් කිරීමට විවිධ විකල්ප ලබා දේ. පහත දැක්වෙන්නේ විශේෂ අවස්ථා සඳහා යෝජිත විකල්ප කිහිපයකි.

ව්‍යුහය පමණක් ඉවත් කිරීම

දත්ත අවශ්‍ය නොවී, වගුවේ ව්‍යුහය පමණක් බැකප් කිරීමට අවශ්‍ය නම්, --no-data විකල්පය භාවිතා කරන්න.

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

මෙම විධානය users වගුවේ ව්‍යුහය පමණක් ඉවත් කරයි; කිසිදු දත්තයක් ඇතුළත් නොවේ.

දත්ත පමණක් ඉවත් කිරීම

එකට විරුද්ධව, වගුවේ දත්ත පමණක් ඉවත් කිරීමට අවශ්‍ය නම්, --no-create-info විකල්පය භාවිතා කරන්න.

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

මෙම විධානය වගුවේ ව්‍යුහය නොඇතුළත් කර, දත්ත පමණක් ඉවත් කරයි.

නියමිත කොන්දේසි මත දත්ත ඉවත් කිරීම

--where විකල්පය භාවිතා කිරීමෙන්, නියමිත කොන්දේසි සපුරන දත්ත පමණක් ඉවත් කළ හැකිය. උදාහරණයක් ලෙස, id 100 ට වඩා වැඩි පේළි පමණක් ඉවත් කිරීමට පහත විධානය භාවිතා කරන්න.

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

මෙම ක්‍රමය විශාල දත්ත ගබඩාවකින් අවශ්‍ය දත්ත පමණක් ලබාගෙන බැකප් කිරීමට ඉඩ සලසයි.

5. ප්‍රායෝගික භාවිත උදාහරණ

භාවිතා නඩුව 1: එක් වගුවක් පිටපත් කිරීම

උදාහරණයක් ලෙස, ඔබට employees දත්ත ගබඩාවේ salary වගුව පමණක් පිටපත් කිරීමට අවශ්‍ය නම්, පහත කමාන්ඩ් එක භාවිතා කරන්න:

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

භාවිතා නඩුව 2: කොන්දේසි සමඟ දත්ත පිටපත් කිරීම

විශේෂිත දත්ත පරාසයක් පමණක් පිටපත් කිරීමට, --where විකල්පය භාවිතා කරන්න. උදාහරණයක් ලෙස, users වගුවේ id 100 ට වඩා වැඩි වන පේළි පමණක් පිටපත් කිරීමට:

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

6. වැදගත් සටහන් සහ හොඳ පුරුදු

වගු අගුළු වැටීමේ ගැටළු

mysqldump භාවිතා කරන විට, වගු අගුළු වැටී, අනෙකුත් මෙහෙයුම් සිදු කිරීම අසීරු වේ. මෙය නිෂ්පාදන පද්ධතිවල විශේෂයෙන් ගැටළුවක් වේ. මෙම ගැටළුව වැළැක්වීමට, --single-transaction විකල්පය භාවිතා කිරීම සුපාරිශීලී වේ. InnoDB වගු සඳහා, එය --skip-lock-tables විකල්පය සමඟ එකතු කිරීම ආරක්ෂාව වැඩි කරයි.

විශාල දත්ත ප්‍රමාණයන් කළමනාකරණය කිරීම

ඔබේ දත්ත ගබඩාවේ විශාල ප්‍රමාණයක් දත්ත ඇතුළත් නම්, පිටපත් කිරීමේ ක්‍රියාවලිය දිගු වේලාවක් ගත විය හැක. ප්‍රභාවී ක්‍රමයක් ලෙස, gzip භාවිතා කරමින් රියල්-ටයිම් එකේ පිටපත් සංකුචනය කිරීමයි.

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

මෙම කමාන්ඩ් එක පිටපත් කිරීමේ ක්‍රියාවලිය තුළ දත්ත සංකුචනය කරයි, ඩිස්ක් ඉඩ සුරැකීමට උපකාරී වේ.

7. නිගමනය

මෙම ලිපියේ, අපි mysqldump කමාන්ඩ් භාවිතා කරමින් විශේෂිත වගු පිටපත් කිරීමේ ක්‍රමය පැහැදිලි කළෙමු. මූලික කමාන්ඩ් භාවිතය සිට කොන්දේසිමය පිටපත්, ව්‍යුහ-පමණක් සහ දත්ත-පමණක් නිර්යාත, සහ කාර්යක්ෂම ස්ක්‍රිප්ට් තාක්ෂණය දක්වා සියල්ල ආවරණය කළෙමු. mysqldump ඉතා බලවත් මෙවලමක් වන අතර, නිසි ලෙස භාවිතා කළහොත්, ඔබට දත්ත ගබඩා පිටපත් සහ මාරු කිරීම් සුවිශේෂී ලෙස සිදු කිරීමට ඉඩ සලසයි.

ඊළඟ ලිපියේ, අපි අධික පරිණාම mysqldump විකල්පයන් ගැන ගැඹුරු විශ්ලේෂණයක් කර, ඒවා වෙනත් පිටපත් මෙවලම් සමඟ සසඳා බලමු.