- 1 1. දත්ත ගබඩා සමතුලිතතාවය රැක ගැනීමට බැක්අප්ස්වල වැදගත්කම
- 2 2. mysqldump හි මූලික භාවිතය
- 3 3. --single-transaction විකල්පයේ විස්තරය
- 4 4. --single-transaction විකල්පය භාවිතා කිරීමේ ක්රමය
- 5 5. –single-transaction භාවිතා කිරීමේදී වැදගත් සැලකිලි
- 6 6. –single-transaction වෙනත් විකල්ප සමඟ ඒකාබද්ධ කිරීම
- 7 7. නිතර අසන ප්රශ්න (FAQ)
- 7.1 Q1. --single-transaction විකල්පය සුදුසු වන්නේ කුමන තත්ත්වයන්හිද?
- 7.2 Q2. MyISAM tables ඇතුළත් නම් --single-transaction භාවිතා කළ හැකිද?
- 7.3 Q3. --single-transaction සහ --lock-tables එකට භාවිතා කළොත් කුමක් සිදුවේ?
- 7.4 Q4. Dump කිරීමේදී CREATE TABLE හෝ ALTER TABLE වැනි DDL මෙහෙයුම් සිදුවුවහොත්?
- 7.5 Q5. --single-transaction සමඟ භාවිතා කිරීමට නිර්දේශිත විකල්ප තිබේද?
- 7.6 Q6. බැකප් කාලය කෙසේ කෙටි කළ හැකිද?
- 7.7 Q7. --single-transaction භාවිතයෙන් නිර්මාණය කළ බැකප් යළි ප්රතිස්ථාපනය කරන්නේ කෙසේද?
- 8 8. නිගමනය
1. දත්ත ගබඩා සමතුලිතතාවය රැක ගැනීමට බැක්අප්ස්වල වැදගත්කම
දත්ත ගබඩා බැක්අප්ස් “රක්ෂණය” වේ
ව්යාපාරයේ, දත්ත ගබඩාව මෙහෙයුම් කටයුතු වල හදවත් ලෙස සැලකිය හැක. ගනුදෙනුකරුවන්ගේ තොරතුරු, ගනුදෙනු ඉතිහාසය, තොග දත්ත—ආසන්න වශයෙන් සියලු ව්යාපාරික ක්රියාවලියක් දත්ත ගබඩාව මත පදනම් වේ. පද්ධති අසාර්ථකතාවයක් හෝ මනුෂ්ය දෝෂයක් නිසා දත්ත අහිමි වුවහොත්, මෙහෙයුම් අඩු වීම, විශ්වාසය අහිමි වීම වැනි ගැඹුරු අවදානම් ඇති විය හැක. එබැවින්, නිතර බැක්අප්ස් කිරීම අත්යවශ්ය “රක්ෂණ ප්රතිපත්ති” එකක් වේ.
බැක්අප්ස් කිරීමේදී දත්ත සමතුලිතතාවය ඔබ කෙසේ සහතික කරගන්නේද?
බැක්අප්ස් කිරීමේදී “සමතුලිතතාවය” (දත්ත අඛණ්ඩතාව) සහතික කිරීම ප්රධාන අභියෝගයකි. විශේෂයෙන්ම, පද්ධතිය නවත්වන්නේ නැතිව, එය ක්රියාත්මක වන අතර බැක්අප්ස් කිරීමේදී සමතුලිතතාවය රැක ගැනීම ඉතා වැදගත් වේ.
උදාහරණයක් ලෙස, බැක්අප්ස් ක්රියාවලිය අතරතුර කෙනෙකු වගුවක් යාවත්කාලීන කළහොත්, ඩම්ප් කර ඇති දත්ත සහ දත්ත ගබඩාවේ වත්මන් තත්ත්වය අතර අසමතුලිතතා පැන නැගිය හැක.
mysqldump කියන්නේ මොනවාද? –single-transaction කියන්නේ මොනවාද?
MySQL සහ MariaDB සඳහා පුළුල් ලෙස භාවිතා වන බැක්අප් උපකරණය mysqldump වේ. සරල කමාන්ඩ්-ලයින් ක්රියාකාරකම් මගින්, ඔබට සම්පූර්ණ දත්ත ගබඩාවක් හෝ විශේෂිත වගු කිහිපයක් SQL ගොනුවකට අපනයනය කළ හැක.
mysqldump හි සමතුලිත බැක්අප්ස් රැක ගැනීමට ආරක්ෂිත හා කාර්යක්ෂම ක්රමයක් වන විකල්පය මෙම ලිපියේ මූලික කරුණයි: --single-transaction.
මෙම විකල්පය ගනුදෙනු (කාර්ය ඒකක) භාවිතා කර “කාලයක විශේෂිත ස්නාප්ශොට්” එකක් සුරකිමින්, අනෙකුත් ක්රියාවලීන් අවහිර නොකර බැක්අප්ස් ඉදිරියට ගෙන යාමට ඉඩ සලසයි. එය ඉතා ප්රයෝජනවත් ලක්ෂණයකි.
මෙම ලිපියෙන් ඔබ ඉගෙන ගන්නා දේ
මෙම ලිපියේ, mysqldump --single-transaction විකල්පය භාවිතා කිරීම, වැදගත් සැලකිලිමත් කරුණු, සහ ප්රායෝගික දෘශ්යකෝණයෙන් අනෙකුත් විකල්ප සමඟ එය කෙසේ එකතු කරගත හැකිද යන්න අපි විස්තරාත්මකව පැහැදිලි කරමු.
mysqldumpහි මූලික කරුණු අවබෝධ කරගැනීමට කැමති අය--single-transactionහි අර්ථය නිවැරදිව තේරුම් ගැනීමට කැමති අය- වාස්තුක පරිසරයන්හි ආරක්ෂිත බැක්අප් මෙහෙයුම් ක්රියාත්මක කිරීමට කැමති අය
අපි ප්රායෝගික කමාන්ඩ් උදාහරණ මඟින් පැහැදිලි හා සරල ලෙස පියවරෙන් පියවර ගමන් කරමු. අවසානය දක්වා කියවන්න.
2. mysqldump හි මූලික භාවිතය
mysqldump කියන්නේ මොනවාද?
mysqldump යනු MySQL සහ MariaDB දත්ත ගබඩා බැක්අප් කිරීම සඳහා ප්රමිතිය කමාන්ඩ්-ලයින් මෙවලමයි. එය වගු ව්යුහය සහ දත්ත SQL ආකාරයෙන් අපනයනය කරයි, සහ ප්රතිස්ථාපනය කිරීම SQL ගොනුව ක්රියාත්මක කිරීමෙන් දත්ත ගබඩාව මුල් තත්ත්වයට පත් කර ගැනීමට ඉතා සරල වේ.
එය පහසු, ශක්තිමත්, සහ සංවර්ධන හා නිෂ්පාදන පරිසරයන්හි පුළුල් ලෙස භාවිතා වේ.
mysqldump හි මූලික ව්යවස්ථාව
mysqldump කමාන්ඩ් හි සරලතම ආකාරය පහත පරිදි වේ:
mysqldump -u username -p database_name > output_file.sql
-u: MySQL වෙත ලොග් වීමට භාවිතා කරන පරිශීලක නාමය-p: මුරපදය ඇතුළත් කිරීම සඳහා ඉල්ලීම (අත්හැරිය නොහැක)database_name: බැක්අප් කිරීමට අවශ්ය දත්ත ගබඩාව>: ප්රතිඵල ගොනුව (ප්රතිදර්ශනය) නියම කිරීම
කමාන්ඩ් ක්රියාත්මක කිරීමෙන් පසු, ඔබට මුරපදයක් ඇතුළත් කිරීමට ඉල්ලීමක් ලැබේ. සාර්ථක නම්, SQL ආකාරයේ බැක්අප් ගොනුවක් ජනනය වේ.
විශේෂිත වගු පමණක් බැක්අප් කිරීම
සම්පූර්ණ දත්ත ගබඩාවට පරිවර්තනය කිරීම වෙනුවට, විශේෂිත වගු පමණක් බැක්අප් කිරීමට අවශ්ය නම්, පහත පරිදි වගු නාමයන් සඳහන් කරන්න:
mysqldump -u username -p database_name table1 table2 > output_file.sql
උදාහරණයක් ලෙස, users සහ orders වගු පමණක් බැක්අප් කිරීමට:
mysqldump -u root -p shop_db users orders > users_orders.sql
බහු දත්ත ගබඩා බැක්අප් කිරීම
-B විකල්පය භාවිතා කිරීමෙන් ඔබට එකවර බහු දත්ත ගබඩා බැක්අප් කළ හැක:
mysqldump -u username -p -B database1 database2 > multi_backup.sql
මෙම ක්රමය CREATE DATABASE ප්රකාශන ඇතුළත් කරයි, එමනිසා ප්රතිස්ථාපනය කිරීම පහසු වේ.
සියලු දත්ත ගබඩා එකවර බැක්අප් කිරීම
පූර්ණ පද්ධති බැක්අප් අවශ්ය නම්, -A (හෝ --all-databases) භාවිතා කරන්න:
mysqldump -u username -p -A > all_databases.sql
මෙම විධානය MySQL සේවාදායකයේ සියලු දත්ත ගබඩා, mysql සහ information_schema වැනි පද්ධති දත්ත ගබඩා ඇතුළුව, dump කරයි, එමනිසා පරිසර මාරු කිරීම් සඳහා සුදුසු වේ.
බැකප් එකක් ප්රතිස්ථාපනය කිරීමේ ක්රමය
mysqldump සමඟ සාදන ලද SQL ගොනුව පහත විධානය භාවිතා කර ප්රතිස්ථාපනය කළ හැකිය:
mysql -u username -p database_name < output_file.sql
මෙය ඔබට නව පරිසරයකට බැකප් දත්ත ප්රතිස්ථාපනය කිරීමට හෝ දෝෂයක් ඇති වූ විට ප්රතිසාධනය කිරීමට ඉඩ සලසයි.
3. --single-transaction විකල්පයේ විස්තරය
බැකප් කිරීමේදී සමතුලිතතාව රැක ගැනීමේ මූලික කරුණ
පෙරනිමියෙන්, mysqldump විධානය වගු එක් එක්ව අනුක්රමයෙන් dump කරයි. එම නිසා, බැකප් ක්රියාවලිය අතරතුර වෙනත් පරිශීලකයෙකු දත්ත වෙනස් කරන්නේ නම්, “අතරමංගල” තත්ත්වයක් සුරැකි විය හැක, එය ඔබ ප්රතිස්ථාපනය කරන විට දත්ත සමතුලිතතාව බිඳ වැටීමට හේතු වේ.
මෙම ගැටලුව විසඳන විකල්පය --single-transaction වේ.
--single-transaction ක්රියාකාරිත්වය
ඔබ මෙම විකල්පය භාවිතා කරන විට, mysqldump dump ක්රියාවලියේ ආරම්භයේ BEGIN ප්රකාශයක් ක්රියාත්මක කර ගනු ලැබේ. මෙය එම මොහොතේ දත්ත ගබඩාවේ ස්නාප්ශොට් එකක් සාදයි. dump කිරීමේදී වෙනත් ගනුදෙනු දත්ත වෙනස් කළත්, බැකප් එකට බලපෑම නොවී අවසන් විය හැක.
අනෙක් වචන වලින් කියනවා නම්, dump ආරම්භ වූ නිරුත්තර මොහොතේ දත්ත ගබඩාව පූර්ණයෙන්ම බැකප් කර ගැනීමට ඉඩ සලසයි—එමනිසා සමතුලිතතාව රැකගත හැක.
InnoDB සමඟ පමණක් ක්රියා කරයි
--single-transaction InnoDB ගබඩා එන්ජින් භාවිතා කරන වගු සඳහා පමණක් ක්රියාත්මක වන බව අවධාරණය කිරීම වැදගත් වේ. InnoDB ගනුදෙනු (transactions) සහය දක්වන බැවින්, ස්නාප්ශොට් සෑදීම සහ රැක ගැනීම සම්භව වේ.
අනෙක් පාර්ශවයෙන්, ඔබ MyISAM හෝ MEMORY වැනි නො-ගනුදෙනුකාරක ගබඩා එන්ජින් භාවිතා කරන විට, --single-transaction අවශ්ය සමතුලිතතාව ලබා නොදේ. එවැනි අවස්ථා වල, --lock-tables හෝ --lock-all-tables වැනි ලොක්-අධාරිත විකල්ප භාවිතා කළ යුතුය.
වගු ලොක් වලින් වෙනස
පෙරනිමියෙන්, mysqldump වගු ලොක් කර සමතුලිතතාව රැක ගනී (කාරණය --lock-tables ස්වයංක්රීයව සක්රිය වේ). නමුත්, මෙම ක්රියාවලියට වැදගත් අඩුපාඩුවක් ඇත: වෙනත් පරිශීලකයන්ට දත්ත යාවත්කාලීන කළ නොහැකි වන අතර—සේවාව ප්රතිඵලයක් ලෙස බාධා විය හැක.
--single-transaction සමඟ, ලොක් නොකර බැකප් ගත හැකි බැවින්, සේවාව නවත්ව නොමැතිව බැකප් ගත හැක. මෙය නිෂ්පාදන පරිසරවල ඉතා වටිනා වේ.
රූපක (පෙළ විස්තරය)
[Regular mysqldump]
Time passes → [Start dumping users table] → [Data changes mid-way] → [Start dumping orders table] → Inconsistency occurs
[Using --single-transaction]
Time passes → [Create snapshot with BEGIN] → [Dump users and orders from the same consistent point in time] → Safe backup completed
වැදගත්: DDL මෙහෙයුම් වලට ප්රතිඵලදායී නොවේ
--single-transaction දත්ත වෙනස්කම් (INSERT, UPDATE, DELETE) වලට ශක්තිමත් වේ, නමුත් ස්කීමා (DDL) වෙනස්කම් (CREATE, DROP, ALTER) වලට ප්රතිඵලදායී නොවේ. බැකප් කිරීමේදී DDL ක්රියාත්මක වූ විට, දෝෂ හෝ අසමතුලිතතා සිදු විය හැක.
ඒ නිසා, DDL වෙනස්කම් වලින් වැළැක්වීමට, නඩත්තු කාලයක් හෝ DDL වෙනස්කම් නොවන වේලාවක බැකප් සැලසුම් කිරීම සුදුසු වේ.
සාරාංශය
--single-transaction යනු InnoDB භාවිතා කරන MySQL පරිසරවල සේවාව නවත්ව නොමැතිව සමතුලිත බැකප් ලබා ගැනීමට ඉතා ප්රභාවී ක්රමයකි. එය කෙසේ ක්රියා කරයි කියා තේරුම් ගනිමින්, නිවැරදිව භාවිතා කිරීමෙන්, ඔබට ආරක්ෂිත හා කාර්යක්ෂම දත්ත ආරක්ෂාවක් ලබා ගත හැක.
4. --single-transaction විකල්පය භාවිතා කිරීමේ ක්රමය
මූලික විධාන උදාහරණය
--single-transaction භාවිතා කිරීමේ සරලම ක්රමය මෙසේය:
mysqldump --single-transaction -u username -p database_name > output_file.sql
මෙම විධානය ගනුදෙනුව ආරම්භ වන මොහොතේ (InnoDB භාවිතා කරන දත්ත ගබඩා සඳහා) දත්ත ගබඩාවේ තත්ත්වය සුරකින්නෙකි. ප්රධාන වාසිය වන්නේ, බැකප් කිරීමේදී අනෙකුත් ක්රියාවලීන්ට බාධා නොකරන බැවින්, සේවාව නවත්ව නොමැතිව මෙය ක්රියාත්මක කළ හැකි වීමයි.
බහු වගු බැකප් කිරීම
ඔබට --single-transaction විශේෂ වගු සඳහා පමණක්ද යෙදිය හැකිය:
mysqldump --single-transaction -u root -p shop_db users orders > users_orders.sql
තනි වගු නිරූපණය කරන විටත්, mysqldump එකම ස්නාප්ශොට් එකක් සාදයි සහ ඒකාලීන තත්ත්වයෙන් දත්ත අපනයනය කරයි.
බහු දත්ත ගබඩා පිටපත් ගැනීම
බහු දත්ත ගබඩා පිටපත් ගැනීමට, එය -B (හෝ --databases) සමඟ එකතු කරන්න:
mysqldump --single-transaction -u root -p -B db1 db2 > multi_db_backup.sql
මෙම ආකෘතිය සෑම දත්ත ගබඩාවක් සඳහාම CREATE DATABASE ප්රකාශන ඇතුළත් කරයි, ප්රතිස්ථාපන කාලයේ පහසුව වැඩි කරයි.
සියලු දත්ත ගබඩා පිටපත් ගැනීම
ඔබට සම්පූර්ණ සේවාදායක පිටපතක් අවශ්ය නම්, -A (හෝ --all-databases) සමඟ භාවිතා කරන්න:
mysqldump --single-transaction -u root -p -A > full_backup.sql
මෙය MySQL සේවාදායකයේ සියලු දත්ත ගබඩා ( mysql, information_schema, performance_schema ඇතුළු) dump කරයි, එය සේවාදායක මාරු කිරීම සහ සම්පූර්ණ ප්රතිස්ථාපන සඳහා ප්රයෝජනවත් වේ.
ක්රියාත්මක කිරීමට පෙර ප්රධාන පරීක්ෂණ
- ගබඩා එන්ජින් InnoDB බවට සහතික කරන්න
--single-transactionInnoDB සඳහා පමණක් ක්රියාත්මක වේ. MyISAM වැනි නො-ගනුදෙනු එන්ජින් සමඟ එය අපේක්ෂිත ලෙස ක්රියා නොකරයි. --lock-tablesසමඟ එකතු නොකරන්න--single-transactionසහ--lock-tablesඑකිනෙකට විරෝධාත්මක ක්රියාකාරකම් වන බැවින්, ඒවා එකට භාවිතා කිරීම සමගිතිකත්ව ගැටළු ඇති කරයි. ආරක්ෂිත ලෙස,--skip-lock-tablesස්පෂ්ටව එකතු කිරීම හොඳ අදහසකි.
පොදු නිර්දේශිත උදාහරණය (හොඳ පුරුදු)
mysqldump --single-transaction --quick --skip-lock-tables -u root -p production_db > backup.sql
මෙම සැකසීම පහත ලක්ෂණ අඩංගු වේ:
--quick: සියලු දත්ත එකවර මතකයට පූරණය කිරීම වෙනුවට, පේළි කියවෙන විටම ප්රතිදානය කිරීමෙන් මතක භාවිතය අඩු කරයි--skip-lock-tables: ස්වයංක්රීය ලොක් කිරීමෙන් වැළකී, ආරක්ෂිත ක්රියාකාරකම් සඳහා පෙන්වයි
ශෙල් ස්ක්රිප්ට් භාවිතා කරමින් ස්වයංක්රීය උදාහරණය
ආචාරක මෙහෙයුම් වල, නිතර පිටපත් ගැනීම ස්ක්රිප්ට් කර cron වැනි මෙවලම් සමඟ ස්වයංක්රීයව ක්රියාත්මක කිරීම සාමාන්යය වේ.
#!/bin/bash
DATE=$(date +%F)
mysqldump --single-transaction --quick --skip-lock-tables -u root -pYourPassword production_db > /backups/production_$DATE.sql
සටහන: පරිසර විචල්ය හෝ වින්යාස ගොනු භාවිතා කර මුරපද කළමනාකරණය කිරීම නිර්දේශිත වේ.

5. –single-transaction භාවිතා කිරීමේදී වැදගත් සැලකිලි
නො-ගනුදෙනු එන්ජින් (උදාහරණයක්: MyISAM) සඳහා බලපෑමක් නොමැත
මෙම විකල්පය ගනුදෙනු ගබඩා එන්ජින් (ප්රධාන වශයෙන් InnoDB) සඳහා පමණක් ක්රියාත්මක වේ. MyISAM සහ MEMORY වැනි එන්ජින් ගනුදෙනු සහාය නොදෙයි, එබැවින් --single-transaction නියම කිරීම සමගිතිකත්වය සහතික නොකරයි.
උදාහරණය:
usersවගුව InnoDB භාවිතා කරයිlogsවගුව MyISAM භාවිතා කරයි
එවැනි මිශ්ර පරිසරයක, users වගුව සමගිතිකව පවතින අතර, logs වගුව පිටපත් කිරීමේදී සමකාලීන මෙහෙයුම් වලින් බලපෑම් ලැබිය හැක.
ප්රතිකාර:
- හැකි තරම් InnoDB එකට සම්මත කරන්න.
- MyISAM හෝ වෙනත් එන්ජින් මිශ්ර නම්,
--lock-all-tablesභාවිතා කිරීම සලකා බලන්න.
DDL මෙහෙයුම් (ස්කීමා වෙනස්කම්) සඳහා ප්රතිඵලයක් නොමැත
--single-transaction දත්ත මෙහෙයුම් (SELECT, INSERT, UPDATE, DELETE) සඳහා හොඳින් ක්රියා කරන අතර, DDL මෙහෙයුම් (CREATE, DROP, ALTER, ආදිය) වලින් ආරක්ෂා නොකරයි.
dump කිරීමේදී වගු විස්තර වෙනස් වුවහොත්, අවදානම් ඇතුළත් වේ:
- dump මැද වගුවක් ඉවත් කරයි → දෝෂයක් සිදුවේ
- dump මැද වගුවේ විස්තර වෙනස් වේ → ස්කීමා අසමතුලිතතාව
ප්රතිකාර:
- පිටපත් කිරීමේදී DDL වලින් වැළකීමට නීතියක් සකස් කරන්න.
- හැකි තරම් නඩත්තු කාලය තුළ පිටපත් කරන්න.
--lock-tables සමඟ එකතු නොකරන්න
පෙරනිමියෙන්, mysqldump --lock-tables සක්රිය කරයි, නමුත් මෙම හැසිරීම --single-transaction සමඟ විරෝධාත්මක වේ. වගු ලොක් කිරීම ගනුදෙනුව ආරම්භ වීමට පෙර සිදු වේ, එය සමගිතිකත්ව ගැණුම් බිඳ දැමිය හැක.
ඒ නිසා, --single-transaction භාවිතා කරන විට, --skip-lock-tables ස්පෂ්ටව එකතු කිරීම නිර්දේශිත වේ.
mysqldump --single-transaction --quick --skip-lock-tables -u root -p dbname > backup.sql
සමගිතිකත්වය ආරම්භක බින්දුවේ පමණක් සහතික වේ
--single-transaction ගනුදෙනුව ආරම්භ වන මොහොතේදී දත්ත සමුදායකයේ ස්නැප්ෂොට් එකක් ගන්නා බව සිහිනගන්න. ඉන් පසු කළ වෙනස්කම් ඩම්ප් එකට ස්වභාවිකවම ඇතුළත් නොවේ.
මෙය ඩම්ප් කිරීමේදී ලොක් තර්කයන් වළක්වයි, නමුත් එය විශේෂිත කාල සීමාවක ස්නැප්ෂොට් එකක් නියෝජනය කරන බව තේරුම් ගැනීම වැදගත් වේ.
විශාල දත්ත සෙට් සඳහා –quick භාවිතා කරන්න
විශාල දත්ත සෙට් බැකප් කිරීමේදී, mysqldump මූලික වශයෙන් මුළු වගු වලට මතකයට ලෝඩ් කිරීමට උත්සාහ කරයි, එය මතක හිඳීම හෝ ස්වැපිං ඇති කිරීමට හැකිය.
එවැනි අවස්ථාවලදී, එය --quick සමඟ ඒකාබද්ධ කරන්න, එය විස්තරයක් එකින් එක කියවා ආදානය කරයි, මතක භාවිතය සැලකිය යුතු ලෙස අඩු කරයි.
mysqldump --single-transaction --quick --skip-lock-tables -u root -p dbname > backup.sql
සාරාංශය
--single-transaction සේවාව නතර නොකර ස්ථිර බැකප් සාක්ෂාත් කර ගැනීම සඳහා බලවත් විකල්පයකි. නමුත් නිවැරදි භාවිතය සඳහා එහි සීමාවන් තේරුම් ගැනීම අවශ්ය වේ. නිෂ්පාදන පරිසරවලදී, ඔබේ බැකප් උපාය මාර්ගය නිර්මාණය කිරීමේදී ස්ථානගත කරණ එන්ජින්, DDL ක්රියාකාරකම් සහ කාලගුණයන් සැලකිල්ලට ගන්න.
6. –single-transaction වෙනත් විකල්ප සමඟ ඒකාබද්ධ කිරීම
–quick: මතක භාවිතය අඩු කිරීම සඳහා හොඳම සහකරු
mysqldump --single-transaction --quick -u root -p dbname > backup.sql
ඔබ --quick එකතු කළ විට, mysqldump සියලු දත්ත මතකයට එකවර ලෝඩ් නොකරයි. ඒ වෙනුවට, එය විස්තරයක් එකවර කියවා ආදානය කරයි. මෙය විශේෂයෙන් විශාල වගු සඳහා ඵලදායී වන අතර මතක පරිභෝජනය සැලකිය යුතු ලෙස අඩු කරයි.
වාසි:
- බැකප් කිරීමේදී අඩු මතක භාවිතය
- ස්වැපිං සහ කාර්ය සාධනය පහත වැටීම වළක්වයි
- විශාල දත්ත පරිසරවල ස්ථායිතාව වැඩි දියුණු කරයි
නිර්දේශය: ඔබ --single-transaction භාවිතා කරන්නේ නම්, එය --quick සමඟ එකතුවෙන් භාවිතා කිරීම ගැලපෙන පුරුද්දකි.
–skip-lock-tables: ස්වයංක්රීය ලොක් වළක්වා ගැනීම සඳහා පැහැදිලිව
mysqldump මූලික වශයෙන් --lock-tables සක්රිය කිරීමට උත්සාහ කරයි, නමුත් මෙය --single-transaction සමඟ ගැටලුවකි. ගැටලු වළක්වා ගැනීම සඳහා, --skip-lock-tables පැහැදිලිව විධිමත් කරන්න.
mysqldump --single-transaction --quick --skip-lock-tables -u root -p dbname > backup.sql
වාසි:
- විධාන අරමුණ පැහැදිලි කරයි
- විකල්ප ගැටලු හේතුවෙන් ඇති වන දෝෂ හෝ අනතුරු ඇඟවීම් වළක්වයි
–master-data: පිළිගැනීම් සැකසුම් සඳහා ආදර්ශය
MySQL පිළිගැනීම් පරිසරවලදී, --master-data පිළිගැනීම් පැත්තේ නිවැරදි සමකාලීනකරණය සහතික කිරීම සඳහා සාමාන්යයෙන් භාවිතා වේ.
mysqldump --single-transaction --quick --master-data=2 -u root -p dbname > repl_backup.sql
--master-data=2 විධිමත් කිරීමේදී, වත්මන් බයිනරි ලොග් ගොනුවේ නම සහ පිහිටන තැන ඩම්ප් ගොනුවේ විචාරක රේඛා ලෙස ලියා ගනී. මෙය එම තොරතුරු භාවිතා කරමින් පිළිගැනීම් සමකාලීන කිරීමට ඉඩ සලසයි.
වැදගත්:
--master-dataප්රධාන වශයෙන් InnoDB සමඟ භාවිතා කළ යුතුය.- එය සමහර විට
--flush-logsසමඟ ඒකාබද්ධ කර බයිනරි ලොග් භ්රමණය කිරීමට භාවිතා වේ.
–set-gtid-purged=OFF: GTID අක්රිය කිරීමට අවශ්ය වන විට
GTID (Global Transaction ID) භාවිතා කරන පරිසරවලදී, mysqldump GTID තොරතුරු ස්වයංක්රීයව ඇතුළත් කර ගත හැකිය. සමහර අවස්ථාවලදී, ඔබ මෙම හැසිරීම අක්රිය කිරීමට අවශ්ය විය හැකිය.
mysqldump --single-transaction --quick --set-gtid-purged=OFF -u root -p dbname > no_gtid.sql
භාවිත අවස්ථා:
- පිළිගැනීම් සැකසුම් බැහැරව තාවකාලික බැකප්
- දත්ත වෙනත් පරිසරයකට මාරු කිරීම
සම්පූර්ණ උදාහරණය (ඒකාබද්ධ විකල්ප)
mysqldump --single-transaction --quick --skip-lock-tables --master-data=2 --set-gtid-purged=OFF -u root -p production_db > production_backup.sql
බහු විකල්ප ඒකාබද්ධ කිරීමෙන්, ඔබ ස්ථිරභාවය, මතක කාර්යක්ෂමතාව, පිළිගැනීම් සමගතභාවය සහ GTID කළමනාකරණය විසඳන ප්රායෝගික බැකප් ස්ක්රිප්ට් එකක් ගොඩනඟා ගත හැකිය.
සාරාංශය
--single-transaction තනිවම බලවත් වුවද, එය වෙනත් විකල්ප සමඟ ඒකාබද්ධ කිරීමෙන් ඔබේ පරිසරයට සහ ඉලක්කවලට ගැලපෙන ඔප්ටිමම් බැකප් උපාය මාර්ගයක් සක්රිය වේ. විශේෂයෙන්, එය --quick සහ --skip-lock-tables සමඟ ඒකාබද්ධ කිරීම ගැලපෙන යමක් වන අතර, පිළිගැනීම් පරිසරවලදී --master-data භාවිතා කිරීම සලකා බැලිය යුතුය.
To fully leverage mysqldump, ඔබේ අරමුණ මත පදනම්ව විකල්ප තෝරාගැනීම ප්රධාන වේ.
7. නිතර අසන ප්රශ්න (FAQ)
මෙහිදී අපි mysqldump --single-transaction පිළිබඳ සාමාන්ය ප්රායෝගික ප්රශ්න සහ ඒවායේ පිළිතුරු සාරාංශගත කර ඇත. මෙම කොටස භාවිතා කරන්න මෙහෙයුම් ගැටලු වළක්වා ගැනීම සහ විශ්වාසනීය බැකප් උපාය මාර්ගයක් නිර්මාණය කිරීම සඳහා ආකරයක් ලෙස.
Q1. --single-transaction විකල්පය සුදුසු වන්නේ කුමන තත්ත්වයන්හිද?
A1.
එය InnoDB storage engine භාවිතා කරන විට සහ සේවාව නතර නොකර ස්ථිර බැකප් එකක් ලබා ගැනීමට අවශ්ය වන විට ආදර්ශීය වේ. එය විශේෂයෙන් වටිනාකම්කරණය වන්නේ e-commerce sites හෝ reservation systems වැනි නිෂ්පාදන පරිසරවලද, එහිදී පරිශීලකයින් නිරන්තරයෙන් පද්ධතියට ප්රවේශ වෙමින් සිටී.
Q2. MyISAM tables ඇතුළත් නම් --single-transaction භාවිතා කළ හැකිද?
A2.
ඔව්, භාවිතා කළ හැකිය, නමුත් MyISAM tables සඳහා දත්ත ස්ථිරභාවය සහතික කර නැත. MyISAM transactions සඳහා සහාය නොදක්වන බැවින්, බැකප් කිරීමේදී සිදුවන යාවත්කාලීනවීම් අසමගතතාවයන්ට තුඩු දිය හැකිය. MyISAM tables ඇතුළත් නම්, --lock-all-tables භාවිතා කිරීම සලකා බලන්න.
Q3. --single-transaction සහ --lock-tables එකට භාවිතා කළොත් කුමක් සිදුවේ?
A3.
මෙම විකල්ප දෙක එකිනෙකට ගැටලුවක් ඇති කරයි, සහ mysqldump එකක් ස්වයංක්රීයව නිෂ්ක්රීය කරයි. නමුත් අනපේක්ෂිත හැසිරීම් හෝ අනතුරු වළක්වා ගැනීම සඳහා, --skip-lock-tables පැහැදිලිව විධිමත් කිරීම ආරක්ෂිත ය.
Q4. Dump කිරීමේදී CREATE TABLE හෝ ALTER TABLE වැනි DDL මෙහෙයුම් සිදුවුවහොත්?
A4.
--single-transaction DDL මෙහෙයුම්වලින් ආරක්ෂාවක් සපයන්නේ නැත. Dump කිරීමේදී table definitions වෙනස් වුවහොත්, බැකප් අසාර්ථක වීම හෝ අසමගත ප්රතිඵලවලට අවදානමක් ඇත. ආදර්ශීය වශයෙන්, බැකප් නිර්මාණය කිරීම maintenance windows වලදී හෝ DDL මෙහෙයුම් වළක්වා ගත හැකි වේලාවන්හිදී සකස් කරන්න.
Q5. --single-transaction සමඟ භාවිතා කිරීමට නිර්දේශිත විකල්ප තිබේද?
A5.
ඔව්, පහත විකල්ප ඒකාබද්ධ කිරීම ආරක්ෂාව සහ කාර්යක්ෂමතාව වැඩි දියුණු කරයි:
--quick: මතක භාවිතය අඩු කර ස්ථිර dumps සක්රීය කරයි--skip-lock-tables: Table lock ගැටලු වළක්වා පැහැදිලිව--master-data=2: Replication-compatible backups සඳහා සහාය දක්වයි--set-gtid-purged=OFF: Non-GTID පරිසරවල නම්යශීලීභාවය සපයයි
Q6. බැකප් කාලය කෙසේ කෙටි කළ හැකිද?
A6.
පහත උපාය මාර්ග ඵලදායී වේ:
- මතක බර අඩු කිරීමට සහ වේගය වැඩි දියුණු කිරීමට
--quickවිකල්පය භාවිතා කරන්න - නිශ්චිත tables පමණක් බැකප් කරන්න (අර්ධ බැකප්)
- Dataset ප්රමාණය අඩු කිරීමට අනවශ්ය දත්ත archive හෝ මකන්න
- SSD හෝ ඉහළ වේග සංරක්ෂණයකට බැකප් ගොනු ප්රතිදානය කරන්න
Q7. --single-transaction භාවිතයෙන් නිර්මාණය කළ බැකප් යළි ප්රතිස්ථාපනය කරන්නේ කෙසේද?
A7.
එය සාමාන්ය mysqldump ගොනුවක් මෙන් පහත විධානය භාවිතයෙන් යළි ප්රතිස්ථාපනය කළ හැකිය:
mysql -u username -p database_name < backup.sql
බැකප් එක binary log හෝ GTID තොරතුරු ඇතුළත් නම්, යළි ප්රතිස්ථාපනයට පෙර අමතර සැකසුම් අවශ්ය විය හැකිය (උදාහරණයක් ලෙස, CHANGE MASTER TO command භාවිතයෙන්).
8. නිගමනය
mysqldump --single-transaction යනු MySQL සහ MariaDB පරිසරවල සේවාව නතර නොකර ස්ථිර බැකප් ලබා ගැනීමේ ශක්තිමත් ක්රමයකි. මෙම ලිපියෙහිදී, එහි මෙකනිසම්, භාවිතය, වැදගත් සලකා බැලීම්, විකල්ප ඒකාබද්ධකරණ, සහ නිතර අසන ප්රශ්න විස්තරාත්මකව ආවරණය කර ඇත.
ප්රධාන ඉගෙනුම්
--single-transactionInnoDB හි transaction ක්රියාකාරිත්වය භාවිතා කර snapshot-පදනම්, ස්ථිර බැකප් සපයයි .- එය table locks වළක්වා ගැනීමට සහ නිෂ්පාදන පරිසරවලදී පවා දත්ත ආරක්ෂිතව dump කිරීමට ඉඩ සලසයි.
- නමුත්, එය MyISAM වැනි non-transactional engines හෝ DDL මෙහෙයුම් සඳහා සහාය නොදක්වයි , එබැවින් ඔබේ පරිසරය පිළිබඳ නිවැරදි අවබෝධය අත්යවශ්ය වේ.
--quick,--skip-lock-tables, සහ--master-dataවැනි විකල්ප සමඟ ඒකාබද්ධ කිරීම ගුණාත්මකභාවය සහ කාර්යක්ෂමතාව දෙකම වැඩි දියුණු කරයි.- FAQ කොටස යථාර්ථ මෙහෙයුම්වලදී සාමාන්යයෙන් ඇති වන ප්රායෝගික ගැටලු විසඳුම් සපයයි.
ආරක්ෂිත සහ කාර්යක්ෂම බැකප් උපාය මාර්ගයක් ගොඩනැගීම
ව්යාපාර සහ සේවා මෙහෙයුම් වල, දත්ත අහිමි වීම සෘජුවම විශ්වාසනීයතාවයට බලපායි. mysqldump සහ --single-transaction නිවැරදිව භාවිතා කිරීමෙන්, විශ්වාසනීයත්වය සහ ප්රායෝගිකත්වය සමතුලිත කරන බැකප්ย්ุරණයක් සකස් කළ හැක.
මූලික කරුණ වන්නේ “බැකප් තිබීම” පමණක් නොව, අසාර්ථකතා වලදී ඔබ විශ්වාස කළ හැකි සමග්ර, විශ්වාසනීය බැකප් ලබා ගැනීමට යාමයි. මෙම ලිපියෙන් ලබාගත් දැනුම ඔබේ දෛනික මෙහෙයුම් ශක්තිමත් කිරීමට යොදා ගන්න.


