ဆောင်းပါးလမ်းညွှန်
က MySQLMariaDB Backup နှင့် Decompression Command များအတွက် ပြီးပြည့်စုံသောလမ်းညွှန်
အစပြုသူကနေ ကျွမ်းကျင်သူအထိ၊ ဒါက ပြောပြတယ်...mysqlဤသင်တန်းသည် dump backup၊ gzip compression၊ gunzip decompression နှင့် MySQL import အတွက် ပြီးပြည့်စုံသော workflow ကို ပံ့ပိုးပေးပြီး developer များအနေဖြင့် database backup နှင့် recovery ကျွမ်းကျင်မှုများကို လျင်မြန်စွာ ကျွမ်းကျင်အောင် ကူညီပေးပြီး database လုံခြုံရေးနှင့် စီးပွားရေးဆက်လက်တည်တံ့ခိုင်မြဲမှုကို သေချာစေရန် ကူညီပေးပါသည်။
MySQL နှင့် MariaDB တို့သည် မူလအစတူညီသော်လည်း open-source လိုင်စင်၊ အင်္ဂါရပ်တိုးချဲ့မှု၊ စွမ်းဆောင်ရည်အကောင်းဆုံးဖြစ်အောင်ပြုလုပ်မှုနှင့် အသိုင်းအဝိုင်းဂေဟစနစ်တို့တွင် သိသိသာသာကွာခြားပါသည်။ MariaDB သည် open source နှင့် အင်္ဂါရပ်ဆန်းသစ်တီထွင်မှုအပြည့်အစုံကို အလေးပေးသော်လည်း MySQL သည် Oracle ၏ စီးပွားဖြစ်ပံ့ပိုးမှုကို အားကိုးပြီး enterprise-level application များအတွက် ပိုမိုသင့်လျော်ပါသည်။
ဒေတာဘေ့စ် ပျက်သွားမှပဲ backup ရဲ့ အရေးပါမှုကို ကျွန်တော် သဘောပေါက်လာတယ်။
developer တိုင်းဟာ data ဆုံးရှုံးမှုရဲ့ ကြေကွဲစရာအခြေအနေကို ကြုံတွေ့ဖူးကြပြီး MySQL နဲ့ MariaDB ရဲ့ backup နဲ့ restore command တွေက အဲဒီအသက်ကယ်လမ်းကြောင်းပါပဲ။
အခု MySQL/MariaDB အတွက် backup, decompression နဲ့ import command တွေကို သေချာနားလည်အောင် တိုက်ရိုက်နည်းလမ်းနဲ့ လမ်းညွှန်ပေးပါမယ်။
MySQL/MariaDB backup command တွေက ဘာကြောင့် အရမ်းအရေးကြီးတာလဲ။
ဒေတာဆိုတာ စီးပွားရေးလုပ်ငန်းတစ်ခုရဲ့ အသက်သွေးကြောပါ။
ဒေတာဘေ့စ် ပျက်စီးသွားပါက စီးပွားရေးလုပ်ငန်းများ အနှောင့်အယှက်ဖြစ်ခြင်း သို့မဟုတ် ဒေါ်လာသန်းပေါင်းများစွာ ဆုံးရှုံးမှုများ ဖြစ်ပေါ်စေနိုင်သည်။
IEEE Transactions on Computers တွင် ဖော်ပြထားသော လေ့လာမှုတစ်ခုအရ စီးပွားရေးလုပ်ငန်းများသည် ဒေတာဘေ့စ် ရပ်တန့်ချိန်ကြောင့် တစ်မိနစ်လျှင် [ပျောက်ဆုံးနေသော ပမာဏ] အထိ ဆုံးရှုံးမှုများ ကြုံတွေ့ရလေ့ရှိသည်။5600 အမေရိကန်ဒေါ်လာ(ရင်းမြစ်- IEEE၊ ၂၀၂၃)။
ဒါကြောင့်မို့လို့ backup command တွေနဲ့ ရင်းနှီးနေရပါမယ်။
MySQL/MariaDB Backup Command များ၏ အသေးစိတ်ရှင်းလင်းချက်

အသုံးအများဆုံး backup နည်းလမ်းကတော့mysqldump။
အမိန့်မှာ အောက်ပါအတိုင်းဖြစ်သည် ။
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
-u root: အသုံးပြုသူကို သတ်မှတ်ပါ။-p[root_password]သင့်စကားဝှက်ကို ရိုက်ထည့်ပါ။[database_name]: အရန်ကူးယူရမည့် ဒေတာဘေ့စ်၏ အမည်။dumpfilename.sqlအရန်ကူးယူထားသောဖိုင်၏အမည်။
ဥပမာအားဖြင့်၊ သင့်ဒေတာဘေ့စ်ကို ခေါ်ဆိုပါက...shopdbဖိုင်နာမည်ကshop_backup.sqlဒါကြောင့် အမိန့်က ဒီလိုပါ-
mysqldump -u root -p123456 shopdb > shop_backup.sql
MariaDB ကလည်း ဒါကို ထောက်ခံပါတယ်။mysqldumpsyntax က လုံးဝ တသမတ်တည်း ရှိပါတယ်။
မင်း အဲဒါကို မလေးစားဘူးလား။
အရန်ကူးယူဖိုင်အရွယ်အစားနှင့် ချုံ့ခြင်း
တစ်ခါတစ်ရံတွင် ဒေတာဘေ့စ်ဖိုင်များသည် အလွန်ကြီးမားပြီး ဂစ်ဂါဘိုက်အနည်းငယ်သာရှိသည်။
ဒီမှာ ဖိသိပ်မှု ဝင်လာတာပါ။
Linux ကိုအသုံးအများဆုံး compression command ကတော့gzip:
gzip shop_backup.sql
ချုံ့ထားတဲ့ဖိုင်က ဒီလိုဖြစ်သွားတယ်shop_backup.sql.gz။
၎င်းက သိုလှောင်ရန်နေရာကို သက်သာစေရုံသာမက ထုတ်လွှင့်မှုကိုလည်း အဆင်ပြေစေပါသည်။
Unzip command: ပြန်လည်ရယူခြင်း၏ ပထမခြေလှမ်း
ဒေတာဘေ့စ်ကို တင်သွင်းခြင်းမပြုမီ ၎င်းကို unzip လုပ်ရပါမည်။
အမိန့်မှာ အောက်ပါအတိုင်းဖြစ်သည် ။
gunzip FileName.gz
ဘာသာပြန်-
gunzip shop_backup.sql.gz
decompression ပြီးနောက်၊ သင်ရရှိမည်shop_backup.sqlဒါက import လုပ်လို့ရတဲ့ file ပါ။
MySQL/MariaDB Import Command များ၏ အသေးစိတ်ရှင်းလင်းချက်
import command နှင့် backup သည် တစ်ခုနှင့်တစ်ခု အပြန်အလှန် မှန်ပြောင်းပြန်မြင်နေရသကဲ့သို့ ဖြစ်သည်။
mysql -u root -p[root_password] [database_name] < dumpfilename.sql
ဥပမာ:
mysql -u root -p123456 shopdb < shop_backup.sql
ဒီအဆင့်မှာ ဖိုင်ထဲက အချက်အလက်အပြည့်အစုံကို database ထဲကို import လုပ်ပါတယ်။
MariaDB ကိုလည်း အသုံးပြုသည်mysqlimport command သည် လုံးဝ သဟဇာတဖြစ်သည်။
လက်တွေ့အခြေအနေ- အရန်ကူးယူခြင်းမှ ပြန်လည်ရယူခြင်းအထိ လုပ်ငန်းစဉ်အပြည့်အစုံ
မင်းမှာ ရှိတယ်ဆိုပါစို့E-commerceဒေတာဘေ့စshopdb။
အရန်သိမ်းခြင်း-
mysqldump -u root -p123456 shopdb > shop_backup.sqlဖိသိပ်မှု:
gzip shop_backup.sql
得到shop_backup.sql.gz။
- ဇစ်ဖွင့်ရန်-
gunzip shop_backup.sql.gz
ပြန်လည်ရယူရန်shop_backup.sql။
- တင်သွင်းမှု-
mysql -u root -p123456 shopdb < shop_backup.sql
လုပ်ငန်းစဉ်တစ်ခုလုံး အဆင်ပြေချောမွေ့စွာ ပြီးမြောက်ခဲ့သည်။
အဖြစ်များသော အမှားများနှင့် ဖြေရှင်းချက်များ
အမှား ၁: ဝင်ရောက်ခွင့် ငြင်းပယ်ခံရသည်
၎င်းက မှားယွင်းနေသော စကားဝှက် သို့မဟုတ် အသုံးပြုသူ အခွင့်အရေး မလုံလောက်ကြောင်း ညွှန်ပြနေသည်။
ဖြေရှင်းချက်- အသုံးပြုသူ၏ ခွင့်ပြုချက်များ မှန်ကန်ကြောင်း သေချာစေရန် စစ်ဆေးပါ။SELECTနှင့်INSERTခွင့်ပြုချက်များ။အမှား ၂: မှတ်ဉာဏ် မလုံလောက်ပါ
မှတ်ဉာဏ်မလုံလောက်သောကြောင့် ဒေတာဘေ့စ်ကို ကိုယ်တိုင်တင်သွင်းခဲ့သည်။
ဖြေရှင်းချက်: အသုံးပြုပါ--single-transactionparameter များကို အသုတ်လိုက်တင်သွင်းခြင်း။အမှား ၃: စာသားရှုပ်ထွေးမှုပြဿနာ
တင်သွင်းပြီးနောက်၊ တရုတ်စာလုံးများကို မေးခွန်းအမှတ်အသားများအဖြစ် ပြသထားသည်။
ဖြေရှင်းချက်- အောက်ပါတို့ကို command တွင်ထည့်ပါ။--default-character-set=utf8mb4။
MySQL တရားဝင်စာရွက်စာတမ်းတွင် ရှင်းရှင်းလင်းလင်းဖော်ပြထားသည်-
"အသုံးပြု
mysqldump၎င်းသည် ဒေတာဖွဲ့စည်းပုံနှင့် ဒေတာအကြောင်းအရာအကြား ညီညွတ်မှုကို သေချာစေသောကြောင့် ယုတ္တိဗေဒဆိုင်ရာ အရန်ကူးယူမှုများ ပြုလုပ်ရန် အကောင်းဆုံးနည်းလမ်းဖြစ်သည်။ (ရင်းမြစ်- MySQL Reference Manual, Oracle)
တရားဝင် MariaDB စာရွက်စာတမ်းတွင်လည်း အလေးပေးဖော်ပြထားသည်-
"MariaDB သည် MySQL ၏ backup နှင့် restore command များနှင့် အပြည့်အဝ တွဲဖက်အသုံးပြုနိုင်သောကြောင့် developer များအနေဖြင့် ချောမွေ့စွာ migrate လုပ်နိုင်ပါသည်။" (ရင်းမြစ်- MariaDB Knowledge Base)
ဒါက command-line backup တွေရဲ့ အရေးပါမှုကို ထပ်မံအလေးပေးဖော်ပြနေပါတယ်။
အဆင့်မြင့်နည်းပညာများ- အလိုအလျောက် အရန်ကူးယူခြင်း
ကိုယ်တိုင် backup လုပ်တာက အရမ်းဒုက္ခပေးနေလား။
သုံးနိုင်သည်crontabစီစဉ်ထားသော အလုပ်များ။
ဥပမာအားဖြင့်၊ နေ့စဉ် နံနက် ၂ နာရီတွင် အလိုအလျောက် အရန်ကူးယူခြင်း-
0 2 * * * mysqldump -u root -p123456 shopdb > /backup/shop_$(date +\%F).sql
ဒါက နေ့စဉ်ရက်စွဲပါတဲ့ backup ဖိုင်တစ်ခုကို ထုတ်ပေးပါလိမ့်မယ်။
အကျဥ်းရုံးသည်
ဒေတာဘေ့စ် အရန်ကူးယူခြင်းသည် ရွေးချယ်စရာတစ်ခု မဟုတ်ဘဲ အသက်အန္တရာယ်ရှိသော ကိစ္စတစ်ခုဖြစ်သည်။
သခင်mysqldump,gunzipနှင့်mysqlimport command သည် database ကို ထိန်းချုပ်ရန် power switch ရှိခြင်းနှင့်တူသည်။
ကျွန်တော့်ရဲ့အချက်က အရမ်းရှင်းပါတယ်။ဒေတာလုံခြုံရေးသည် စီးပွားရေးလုပ်ငန်းများအတွက် အမြင့်ဆုံးဦးစားပေးဖြစ်ပြီး အရန်ကူးယူခြင်းသည် တစ်ခုတည်းသော ကာကွယ်ရေးမျဉ်းဖြစ်သည်။
Harvard Business Review မှာ ဖော်ပြထားတဲ့အတိုင်းပါပဲ။
"ဒစ်ဂျစ်တယ်ခေတ်မှာ ဒေတာက ရွှေထက် ပိုတန်ဖိုးရှိတယ်။"
ဒါကြောင့် အခုပဲ လုပ်ဆောင်ပါ၊ သင့်ရဲ့ script တွေကို ရေးမှတ်ထားပါ၊ ပြီးတော့ data တွေကို သင့်လက်ထဲမှာ ခိုင်မြဲစွာ သိမ်းဆည်းထားပါ။
ဒါက နည်းပညာနဲ့တင်မကဘူး၊ တာဝန်ယူမှုနဲ့လည်း ပတ်သက်ပါတယ်။
မျှော်လင့်ခြင်း Chen Weiliang ဘလော့ဂ် ( https://www.chenweiliang.com/ ဤနေရာတွင် မျှဝေထားသော "MySQL/MariaDB Backup and Decompression Commands များအတွက် ပြီးပြည့်စုံသောလမ်းညွှန်- အစပြုသူမှ ကျွမ်းကျင်သူအထိ" ဆောင်းပါးသည် သင့်အတွက် အထောက်အကူဖြစ်နိုင်ပါသည်။
ဤဆောင်းပါး၏ link ကိုမျှဝေရန်ကြိုဆိုပါတယ်:https://www.chenweiliang.com/cwl-33917.html
