MS SQL සේවාදායකයේ නව අනුවාදයකින් පැරණි අනුවාදයකට උපස්ථ දත්ත මාරු කිරීම

මුදලටය

වරක්, දෝෂයක් ප්‍රතිනිෂ්පාදනය කිරීමට, මට නිෂ්පාදන දත්ත ගබඩාවේ උපස්ථයක් අවශ්‍ය විය.

මගේ පුදුමයට, මම පහත සීමාවන්ට මුහුණ දුන්නා:

  1. දත්ත සමුදා උපස්ථය අනුවාදය මත සාදන ලදී SQL Server 2016 සහ මගේ සමග නොගැලපේ SQL Server 2014.
  2. මගේ වැඩ පරිගණකයේ OS එක තිබුනා වින්ඩෝස් 7ඒ නිසා මට යාවත්කාලීන කිරීමට නොහැකි විය SQL සේවාදායකය 2016 අනුවාදය දක්වා
  3. සහය දක්වන නිෂ්පාදනය දැඩි ලෙස සම්බන්ධ වූ උරුම ගෘහනිර්මාණ ශිල්පයක් සහිත විශාල පද්ධතියක කොටසක් වූ අතර අනෙකුත් නිෂ්පාදන සහ පදනම් වෙත ප්‍රවේශ විය, එබැවින් එය වෙනත් ස්ථානයකට යෙදවීමට ඉතා දිගු කාලයක් ගතවනු ඇත.

ඉහත කරුණු සලකා බැලූ විට, සම්මත නොවන විසඳුම්වල කිහිලිකරු සඳහා කාලය පැමිණ ඇති බව මම නිගමනය කළෙමි.

උපස්ථයෙන් දත්ත ප්‍රතිසාධනය කිරීම

මම අථත්ය යන්ත්රයක් භාවිතා කිරීමට තීරණය කළා ඔරකල් වීඑම් වර්චුවල් බොක්ස් Windows 10 සමඟින් (ඔබට Edge බ්‍රව්සරය සඳහා පරීක්ෂණ රූපයක් ගත හැක මෙතනින්) SQL Server 2016 අථත්‍ය යන්ත්‍රය මත ස්ථාපනය කර ඇති අතර යෙදුම් දත්ත සමුදාය උපස්ථයකින් ප්‍රතිසාධනය කරන ලදී (අත්පොත).

අතථ්‍ය යන්ත්‍රයක SQL Server වෙත ප්‍රවේශය සැකසීම

ඊළඟට, SQL සේවාදායකයට පිටතින් ප්‍රවේශ වීමට හැකි වන පරිදි පියවර කිහිපයක් ගැනීමට අවශ්‍ය විය:

  1. ෆයර්වෝල් සඳහා, වරාය ඉල්ලීම් සම්මත වීමට ඉඩ දීමට රීතියක් එක් කරන්න 1433.
  2. සේවාදායකයට ප්‍රවේශය සිදුවන්නේ වින්ඩෝස් සත්‍යාපනය හරහා නොව, පිවිසුම් සහ මුරපදය භාවිතා කරමින් SQL හරහා වීම සුදුසුය (ප්‍රවේශය වින්‍යාස කිරීම පහසුය). කෙසේ වෙතත්, මෙම අවස්ථාවේදී, SQL සේවාදායක ගුණාංගවල SQL සත්‍යාපනය සක්‍රීය කිරීමට ඔබ මතක තබා ගත යුතුය.
  3. ටැබය මත SQL සේවාදායකයේ පරිශීලක සැකසුම් තුළ පරිශීලක සිතියම්කරණය ප්රතිෂ්ඨාපනය කරන ලද දත්ත සමුදාය සඳහා පරිශීලක භූමිකාව සඳහන් කරන්න db_securityadmin.

දත්ත හුවමාරු

ඇත්ත වශයෙන්ම, දත්ත හුවමාරුව අදියර දෙකකින් සමන්විත වේ:

  1. දත්ත ක්‍රමය මාරු කිරීම (වගු, දර්ශන, ගබඩා කළ ක්‍රියා පටිපාටි ආදිය)
  2. දත්ත ම මාරු කිරීම

දත්ත යෝජනා ක්රමය මාරු කිරීම

අපි පහත මෙහෙයුම් සිදු කරන්නෙමු:

  1. තෝරන්න කාර්යයන් -> ස්ක්‍රිප්ට් ජනනය කරන්න අතේ ගෙන යා හැකි පදනමක් සඳහා.
  2. ඔබට මාරු කිරීමට හෝ පෙරනිමි අගය අත්හැරීමට අවශ්‍ය වස්තූන් තෝරන්න (මෙම අවස්ථාවේදී, සියලුම දත්ත සමුදා වස්තු සඳහා ස්ක්‍රිප්ට් සාදනු ඇත).
  3. ස්ක්‍රිප්ට් සුරැකීමට සැකසුම් සඳහන් කරන්න. වඩාත් පහසුම ක්‍රමය වන්නේ යුනිකෝඩ් කේතනය තුළ ස්ක්‍රිප්ට් එක ගොනුවක සුරැකීමයි. එවිට, අසමත් වීමක් තිබේ නම්, ඔබට නැවත සියලු පියවර නැවත කිරීමට අවශ්ය නොවනු ඇත.

ස්ක්‍රිප්ට් එක සුරකින ලද පසු, අවශ්‍ය දත්ත සමුදාය නිර්මාණය කිරීම සඳහා එය මූලාශ්‍ර SQL සේවාදායකය (පැරණි අනුවාදය) මත ක්‍රියාත්මක කළ හැක.

Внимание: ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කිරීමෙන් පසු, ඔබට උපස්ථයෙන් සහ ස්ක්‍රිප්ට් මගින් සාදන ලද දත්ත සමුදායේ සිට දත්ත සමුදා සැකසුම් වල අනුකූලතාව පරීක්ෂා කළ යුතුය. මගේ නඩුවේදී, ස්ක්‍රිප්ටයේ COLLATE සඳහා සැකසුමක් නොතිබූ අතර, එය දත්ත මාරු කිරීමේදී අසාර්ථක වූ අතර, වැඩි දියුණු කළ ස්ක්‍රිප්ට් භාවිතයෙන් දත්ත සමුදාය නැවත නිර්මාණය කිරීම සඳහා රබන් සමඟ නටමින්.

දත්ත හුවමාරු

දත්ත මාරු කිරීමට පෙර, ඔබ දත්ත සමුදායේ ඇති සියලුම සීමාවන් පරීක්ෂා කිරීම අක්රිය කළ යුතුය:

EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

දත්ත ආයාත විශාරද භාවිතයෙන් දත්ත හුවමාරුව සිදු කෙරේ කාර්යයන් -> දත්ත ආනයනය කරන්න ස්ක්‍රිප්ට් මගින් සාදන ලද දත්ත සමුදාය පිහිටා ඇති SQL සේවාදායකයේ:

  1. මූලාශ්‍රය වෙත සම්බන්ධතා සැකසුම් සඳහන් කරන්න (අථත්‍ය යන්ත්‍රයක SQL Server 2016). මම Data Source පාවිච්චි කළා SQL සේවාදායක ස්වදේශීය සේවාදායකයා සහ ඉහත සඳහන් කළ SQL සත්‍යාපනය.
  2. අපි ගමනාන්තයට සම්බන්ධතා සැකසුම් නියම කරමු (SQL Server 2014 සත්කාරක යන්ත්රයේ).
  3. ඊළඟට අපි සිතියම් සකස් කරමු. ඔබ සියල්ල තෝරාගත යුතුය කියවීමට පමණක් නොවේ වස්තූන් (උදාහරණයක් ලෙස, දර්ශන තෝරා ගැනීමට අවශ්ය නොවේ). අමතර විකල්ප තෝරා ගත යුතුය "අනන්‍යතා තීරු වලට ඇතුල් කිරීමට ඉඩ දෙන්න", එවැනි භාවිතා කරන්නේ නම්.
    Внимание: ඔබ වගු කිහිපයක් තෝරාගෙන ඒවාට දේපල පැවරීමට උත්සාහ කරන්නේ නම් "අනන්‍යතා තීරු වලට ඇතුල් කිරීමට ඉඩ දෙන්න" දේපල දැනටමත් අවම වශයෙන් තෝරාගත් වගු වලින් එකක් සඳහා සකසා ඇත, සංවාද කොටුව මඟින් තෝරාගත් සියලුම වගු සඳහා දේපල දැනටමත් සකසා ඇති බව පෙන්නුම් කරයි. මෙම කරුණ ව්‍යාකූල විය හැකි අතර ස්ථාන මාරු දෝෂ වලට මග පාදයි.
  4. අපි මාරු කිරීම ආරම්භ කරමු.
  5. සීමා පරීක්ෂාව ප්‍රතිසාධනය කිරීම:
    EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'

කිසියම් දෝෂයක් සිදුවුවහොත්, අපි සැකසුම් පරීක්ෂා කර, දෝෂ සහිත දත්ත සමුදාය මකා දමා, ස්ක්‍රිප්ට් එකෙන් එය නැවත සාදන්න, නිවැරදි කිරීම් සහ දත්ත හුවමාරුව නැවත කරන්න.

නිගමනය

මෙම කාර්යය තරමක් දුර්ලභ වන අතර ඉහත සීමාවන් නිසා පමණක් පැන නගී. වඩාත් පොදු විසඳුම වන්නේ යෙදුම් ගෘහ නිර්මාණ ශිල්පය එයට ඉඩ දෙන්නේ නම් SQL සේවාදායකය උත්ශ්‍රේණි කිරීම හෝ දුරස්ථ සේවාදායකයකට සම්බන්ධ කිරීමයි. කෙසේ වෙතත්, උරුම කේතයෙන් සහ දුර්වල ගුණාත්මක සංවර්ධනයේ වංචනික දෑතින් කිසිවෙකු ආරක්ෂිත නොවේ. ඔබට මෙම උපදෙස් අවශ්‍ය නොවනු ඇතැයි මම බලාපොරොත්තු වෙමි, ඔබට ඒවා අවශ්‍ය නම්, ඒවා ඔබට බොහෝ කාලයක් සහ ස්නායු ඉතිරි කර ගැනීමට උපකාරී වනු ඇත. ඔබගේ අවදානය පිළිබඳ ස්තූතියි!

භාවිතා කරන ලද මූලාශ්ර ලැයිස්තුව

මූලාශ්රය: www.habr.com