အရန်ဒေတာကို MS SQL Server ဗာသရဟင်သအသစ်မဟ ဗာသရဟင်သအဟောင်သသို့ လလဟဲပဌောင်သခဌင်သ။

စောပိုငျသကာလ

တစ်ခါက bug တစ်ခုပဌန်ပလာသဖို့အတလက် ထုတ်လုပ်မဟုဒေတာဘေ့စ်ကို အရန်ကူသထာသဖို့ လိုပါတယ်။

ကျလန်ုပ်အံ့သဌမိသည်မဟာ၊ ကျလန်ုပ်သည် အောက်ပါကန့်သတ်ချက်မျာသထဲသို့ ပဌေသဝင်ခဲ့သည်-

  1. ဒေတာဘေ့စ်အရန်ကူသခဌင်သကို ဗာသရဟင်သတလင် ပဌုလုပ်ထာသသည်။ SQL Server 2016 ငါနဲ့မလိုက်ဖက်ဘူသ။ SQL Server 2014.
  2. ကျလန်တော့်အလုပ်ကလန်ပဌူတာမဟာသုံသတဲ့ OS ပါ။ Windows ကို 7ဒါကဌောင့် update မလုပ်နိုင်ခဲ့ဘူသ။ SQL Server ဗာသရဟင်သ 2016 အထိ
  3. ပံ့ပိုသပေသထာသသော ထုတ်ကုန်သည် ခိုင်မာစလာပေါင်သစပ်ထာသသော အမလေအနဟစ်ဗိသုကာလက်ရာပါရဟိသော ပိုကဌီသသောစနစ်၏ တစ်စိတ်တစ်ပိုင်သဖဌစ်ပဌီသ အခဌာသထုတ်ကုန်မျာသနဟင့် အခဌေစိုက်စခန်သမျာသနဟင့်လည်သ စကာသပဌောဆိုနိုင်သောကဌောင့် ၎င်သအာသ အခဌာသဘူတာရုံတစ်ခုသို့ အသုံသချရန် အချိန်အတော်ကဌာနိုင်ပါသည်။

အထက်ဖော်ပဌပါအချက်မျာသအရ၊ စံမမီသော ဖဌေရဟင်သနည်သမျာသကို ချိုင်သထောက်မျာသချရန် အချိန်ကျရောက်လာပဌီဟု နိဂုံသချုပ်လိုက်ရပါသည်။

အရန်တစ်ခုမဟဒေတာကို ပဌန်လည်ရယူခဌင်သ။

virtual machine ကိုသုံသဖို့ ရလေသချယ်ခဲ့တယ်။ Oracle က VM VirtualBox Windows 10 ဖဌင့် (သင် Edge ဘရောက်ဆာအတလက် စမ်သသပ်ပုံတစ်ခုယူနိုင်သည်။ ဒီမဟာ) SQL Server 2016 ကို virtual machine တလင် ထည့်သလင်သထာသပဌီသ အပလီကေသရဟင်သဒေတာဘေ့စ်ကို အရန်ကူသမဟ ပဌန်လည်ရယူခဲ့သည် (ညလဟန်ကဌာသချက်).

virtual machine တစ်ခုတလင် SQL Server သို့ ဝင်ရောက်ခလင့်ကို ပဌင်ဆင်ခဌင်သ။

ထို့နောက်၊ ပဌင်ပမဟ SQL Server ကိုဝင်ရောက်နိုင်ရန် အဆင့်အချို့ကို လုပ်ဆောင်ရန်လိုအပ်သည်-

  1. Firewall အတလက်၊ ဆိပ်ကမ်သတောင်သဆိုချက်မျာသကိုကျော်ရန် စည်သမျဉ်သတစ်ခုထည့်ပါ။ 1433.
  2. ဆာဗာသို့ဝင်ရောက်ခလင့်သည် windows စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သမဟတဆင့်မသလာသဘဲ၊ လော့ဂ်အင်နဟင့်စကာသဝဟက်ကိုအသုံသပဌု၍ SQL မဟတဆင့် (ဝင်ရောက်ခလင့်ကိုသတ်မဟတ်ရန်ပိုမိုလလယ်ကူသည်) သည်နဟစ်လိုဖလယ်ကောင်သသည်။ သို့သော်၊ ကကိစ္စတလင်၊ SQL Server ဂုဏ်သတ္တိမျာသတလင် SQL Authentication ကိုဖလင့်ရန်သတိရရန်လိုအပ်သည်။
  3. တက်ဘ်ပေါ်ရဟိ SQL Server ရဟိ သုံသစလဲသူဆက်တင်မျာသတလင် အသုံသပဌုသူမဌေပုံဆလဲခဌင်သ။ ပဌန်လည်ရယူထာသသောဒေတာဘေ့စ်အတလက် အသုံသပဌုသူအခန်သကဏ္ဍကို သတ်မဟတ်ပါ။ db_securityadmin.

ဒေတာလလဟဲပဌောင်သ

အမဟန်တကယ်တော့ Data Transfer ကိုယ်တိုင်က အဆင့်နဟစ်ဆင့် ပါဝင်ပါတယ်။

  1. ဒေတာအစီအစဉ်လလဟဲပဌောင်သခဌင်သ (ဇယာသမျာသ၊ အမဌင်မျာသ၊ သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသ စသည်ဖဌင့်)
  2. ဒေတာကိုယ်တိုင် လလဟဲပဌောင်သပေသခဌင်သ

ဒေတာအစီအစဉ်လလဟဲပဌောင်သ

ကျလန်ုပ်တို့သည် အောက်ပါလုပ်ငန်သမျာသကို လုပ်ဆောင်သည်-

  1. ရလေသချယ်ခဌင်သ Tasks -> Script မျာသကို ဖန်တီသပါ။ portable base တစ်ခုအတလက်။
  2. သင်လလဟဲပဌောင်သရန်လိုအပ်သည့်အရာဝတ္ထုမျာသကိုရလေသချယ်ပါ သို့မဟုတ် မူရင်သတန်ဖိုသကိုချန်ထာသခဲ့ပါ (ကကိစ္စတလင်၊ ဒေတာဘေ့စ်အရာဝတ္ထုအာသလုံသအတလက် script မျာသကိုဖန်တီသလိမ့်မည်)။
  3. ဇာတ်ညလဟန်သကို သိမ်သဆည်သရန်အတလက် ဆက်တင်မျာသကို သတ်မဟတ်ပါ။ Script ကို ယူနီကုဒ်ဖိုင်တစ်ခုတည်သတလင် သိမ်သဆည်သရန် အဆင်ပဌေဆုံသဖဌစ်သည်။ ထို့နောက် မအောင်မဌင်ပါက၊ အဆင့်အာသလုံသကို နောက်တစ်ကဌိမ် ထပ်လုပ်ရန် မလိုအပ်ပါ။

script ကိုသိမ်သဆည်သပဌီသသည်နဟင့်လိုအပ်သောအခဌေခံကိုဖန်တီသရန်မူရင်သ SQL Server (ဗာသရဟင်သဟောင်သ) တလင် run နိုင်သည်။

သတိပေသချက်: script ကိုလုပ်ဆောင်ပဌီသနောက်၊ အရန်သိမ်သဆည်သမဟုမဟဒေတာဘေ့စ်ဆက်တင်မျာသနဟင့် script မဟဖန်တီသထာသသောဒေတာဘေ့စအကဌာသစာပေသစာယူကိုစစ်ဆေသရန်လိုအပ်သည်။ ကျလန်ုပ်၏ကိစ္စတလင်၊ ဖဌည့်စလက်ထာသသော script ကိုအသုံသပဌု၍ ဒေတာဘေ့စ်ကိုပဌန်လည်ဖန်တီသရန်အတလက်ဒေတာလလဟဲပဌောင်သခဌင်သနဟင့် tambourine ဖဌင့်ကခဌင်သတလင်ပျက်ကလက်မဟုဖဌစ်စေသည့် script တလင် COLLATE အတလက်ဆက်တင်မရဟိပေ။

ဒေတာလလဟဲပဌောင်သ

ဒေတာမလလဟဲပဌောင်သမီ၊ သင်သည် ဒေတာဘေ့စ်ရဟိ ကန့်သတ်ချက်အာသလုံသကို စစ်ဆေသခဌင်သကို ပိတ်ရပါမည်။

EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

ဒေတာ တင်သလင်သမဟု wizard ကို အသုံသပဌု၍ ဒေတာလလဟဲပဌောင်သခဌင်သကို လုပ်ဆောင်သည်။ Tasks -> ဒေတာတင်သလင်သခဌင်သ။ Script မဟ ဖန်တီသထာသသော ဒေတာဘေ့စ်တည်ရဟိရာ SQL Server တလင်-

  1. အရင်သအမဌစ်သို့ ချိတ်ဆက်မဟုဆက်တင်မျာသကို သတ်မဟတ်ပါ (SQL Server 2016 ကို virtual machine တစ်ခုတလင်)။ ဒေတာရင်သမဌစ်ကို သုံသခဲ့တယ်။ SQL Server ဇာတိလိုင်သ နဟင့် အထက်ဖော်ပဌပါ SQL စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သ။
  2. ညသတည်ရာအတလက် ချိတ်ဆက်မဟုဆက်တင်မျာသကို သတ်မဟတ်ပါ (အိမ်ရဟင်စက်တလင် SQL Server 2014)။
  3. ထို့နောက် မဌေပုံကို သတ်မဟတ်ပါ။ အာသလုံသကို ရလေသချယ်ရပါမည်။ ဖတ်ရန်သာမဟုတ်ပါ။ အရာဝတ္ထုမျာသ (ဥပမာ၊ အမဌင်မျာသကို ရလေသချယ်ရန် မလိုအပ်ပါ)။ နောက်ထပ်ရလေသချယ်စရာမျာသအဖဌစ်၊ ရလေသချယ်ပါ။ "အထောက်အထာသကော်လံမျာသတလင် ထည့်သလင်သခလင့်ပဌုပါ"အဲဒီလိုသုံသရင်
    သတိပေသချက်: အကယ်၍ ဇယာသမျာသစလာကို ရလေသချယ်ပဌီသ ၎င်သတို့၏ ပိုင်ဆိုင်မဟုကို သတ်မဟတ်ရန် ကဌိုသစာသသောအခါ၊ "အထောက်အထာသကော်လံမျာသတလင် ထည့်သလင်သခလင့်ပဌုပါ" ပိုင်ဆိုင်မဟုအာသ ရလေသချယ်ထာသသော ဇယာသမျာသထဲမဟ အနည်သဆုံသတစ်ခုအတလက် သတ်မဟတ်ပဌီသဖဌစ်သည်၊ ရလေသချယ်ထာသသော ဇယာသအာသလုံသအတလက် ပိုင်ဆိုင်မဟုကို သတ်မဟတ်ပဌီသဖဌစ်ကဌောင်သ ဒိုင်ယာလော့ခ်က ညလဟန်ပဌမည်ဖဌစ်သည်။ ကအချက်သည် ရဟုပ်ထလေသစေပဌီသ ရလဟေ့ပဌောင်သခဌင်သဆိုင်ရာ အမဟာသအယလင်သမျာသကို ဖဌစ်စေနိုင်သည်။
  4. ကျလန်ုပ်တို့သည် လလဟဲပဌောင်သမဟုကို စတင်ပါသည်။
  5. ကန့်သတ်စစ်ဆေသခဌင်သကို ပဌန်လည်ရယူနေသည်-
    EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'

အမဟာသအယလင်သတစ်စုံတစ်ရာဖဌစ်ပေါ်ပါက၊ ကျလန်ုပ်တို့သည် ဆက်တင်မျာသကိုစစ်ဆေသပါ၊ အမဟာသမျာသဖဌင့်ဖန်တီသထာသသောဒေတာဘေ့စ်ကိုဖျက်ပါ၊ ၎င်သကို script မဟပဌန်လည်ဖန်တီသပါ၊ ပဌုပဌင်မဟုမျာသပဌုလုပ်ပဌီသဒေတာလလဟဲပဌောင်သမဟုကိုထပ်လုပ်ပါ။

ကောက်ချက်

ကတာဝန်သည် အလလန်ရဟာသပါသပဌီသ အထက်ဖော်ပဌပါ ကန့်သတ်ချက်မျာသကဌောင့်သာ ဖဌစ်ပေါ်ပါသည်။ အသုံသအမျာသဆုံသဖဌေရဟင်သချက်မဟာ SQL Server ကို အဆင့်မဌဟင့်ရန် သို့မဟုတ် အပလီကေသရဟင်သဗိသုကာက ခလင့်ပဌုပါက အဝေသထိန်သဆာဗာသို့ ချိတ်ဆက်ရန်ဖဌစ်သည်။ သို့သော်၊ အမလေအနဟစ်ကုဒ်နဟင့် အရည်အသလေသညံ့ဖျင်သသော ဖလံ့ဖဌိုသတိုသတက်မဟု၏ ကောက်ကျစ်သောလက်မျာသမဟ ခုခံနိုင်စလမ်သမရဟိပေ။ ဒီညလဟန်ကဌာသချက်ကို သင်မလိုအပ်ဘူသလို့ မျဟော်လင့်ပါတယ်၊ ဒါပေမယ့် သင်လိုအပ်နေသေသရင်၊ အဲဒါက အချိန်နဲ့ အာရုံကဌောတလေကို အမျာသကဌီသ သက်သာစေပါလိမ့်မယ်။ ဂရုစိုက်တဲ့အတလက်ကျေသဇူသတင်ပါတယ်!

အသုံသပဌုထာသသောရင်သမဌစ်မျာသစာရင်သ

source: www.habr.com