MySQL හි සංකේතනය: ප්‍රධාන යතුරු භ්‍රමණය

පාඨමාලාව සඳහා නව බඳවා ගැනීම් ආරම්භය අපේක්ෂාවෙන් "දත්ත සමුදාය" අපි MySQL හි සංකේතනය පිළිබඳ ලිපි මාලාවක් දිගටම ප්‍රකාශයට පත් කරන්නෙමු.

මෙම ලිපි මාලාවේ පෙර ලිපියෙන් අපි සාකච්ඡා කළෙමු ප්‍රධාන යතුරු සංකේතනය ක්‍රියා කරන ආකාරය. අද, කලින් ලබාගත් දැනුම මත පදනම්ව, ප්රධාන යතුරු වල භ්රමණය දෙස බලමු.

ප්‍රධාන යතුරු භ්‍රමණයට නව ප්‍රධාන යතුරක් ජනනය කිරීම සහ මෙම නව යතුර සමඟ මේස අවකාශ යතුරු (මේස අවකාශයේ ශීර්ෂවල ගබඩා කර ඇති) නැවත සංකේතනය කිරීම ඇතුළත් වේ.

සංකේතනය කරන ලද මේස අවකාශයක ශීර්ෂකය කෙබඳුදැයි අපි සිහිපත් කරමු:

MySQL හි සංකේතනය: ප්‍රධාන යතුරු භ්‍රමණය

පෙර ලිපියෙන්, සේවාදායකය ආරම්භයේදී සියලුම සංකේතාත්මක වගු වල ශීර්ෂ කියවන අතර විශාලතම KEY ID මතක තබා ගන්නා බව අපි දනිමු. උදාහරණයක් ලෙස අපට KEY සහිත වගු තුනක් තිබේ නම්ID = 3 සහ KEY සමඟ එක් වගුවක්ID = 4, එවිට උපරිම යතුරු ID 4 වනු ඇත. අපි මෙම KEY ID - MAX KEY ID ලෙස හඳුන්වමු.

ප්‍රධාන යතුරු භ්‍රමණය ක්‍රියා කරන ආකාරය

1. පරිශීලකයා ALTER INNODB MASTER KEY ක්‍රියාත්මක කරයි.

2. සේවාදායකය UUID සහ KEY සමඟ නව ප්‍රධාන යතුරක් උත්පාදනය කරන ලෙස සේවාදායකය ඉල්ලා සිටී.හැඳුනුම්පත එක එකතු කළ MAX ට සමාන වේයතුරහැඳුනුම්පත. එබැවින් අපට INNODB ට සමාන ප්‍රධාන යතුරු හැඳුනුම්පතක් ලැබේKEY-UUID-(උපරිමයතුරID + 1). ප්‍රධාන යතුර සාර්ථක වූ පසු, MAX KEY ID එකකින් වැඩි වේ (එනම් MAXයතුරID=MAXයතුරID + 1).

3. සේවාදායකය ප්‍රධාන යතුර සමඟ සංකේතනය කර ඇති සියලුම වගු අවකාශයන් පරිලෝකනය කරයි, සහ එක් එක් වගු අවකාශය සඳහා:

  • නව ප්‍රධාන යතුර සමඟ tablespace යතුර සංකේතනය කරයි;

  • යතුරු හැඳුනුම්පත නව MAX වෙත යාවත්කාලීන කරයියතුරහැඳුනුම්පත;

  • UUID සේවාදායකය UUID ට වඩා වෙනස් නම්, UUID සේවාදායකය යාවත්කාලීන කරන්න.

අප දන්නා පරිදි, වගුවක් විකේතනය කිරීමට භාවිතා කරන Master Key ID එක UUID එකකින් සහ Tablespace header එකෙන් කියවන KEY ID එකකින් සමන්විත වේ. අපි දැන් කරන්නේ මේසස්පේස් සංකේතාංකන ශීර්ෂය තුළ මෙම තොරතුරු යාවත්කාලීන කිරීම, එවිට සේවාදායකයට නිවැරදි ප්‍රධාන යතුර ලැබේ.

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

මෙය, ඇත්ත වශයෙන්ම, ප්රසන්න අතුරු ආබාධයකි. ප්‍රධාන යතුරු කැරකීමේ ප්‍රධාන අරමුණ වන්නේ අපගේ සේවාදායකය වඩාත් ආරක්ෂිත කිරීමයි. ප්‍රධාන යතුර කෙසේ හෝ සුරක්ෂිතාගාරයෙන් සොරකම් කර ඇති අවස්ථාවක (උදාහරණයක් ලෙස, වෝල්ට් සේවාදායකයෙන්), සොරකම් කළ යතුර අවලංගු කරමින් නව ප්‍රධාන යතුරක් උත්පාදනය කර tablespace යතුරු නැවත සංකේතනය කළ හැකිය. අපි ආරක්ෂිතයි...පාහේ.

කලින් ලිපියක මම කතා කළේ Tablespace key එකක් සොරකම් කළ පසු තෙවන පාර්ශවයකට එය භාවිතා කර දත්ත විකේතනය කළ හැකි ආකාරය ගැනයි. අපගේ තැටියට ප්‍රවේශය ඇති බව සපයා ඇත. ප්‍රධාන යතුර සොරකම් කර ඇත්නම් සහ ඔබට සංකේතාත්මක දත්ත වෙත ප්‍රවේශය තිබේ නම්, ඔබට සොරකම් කළ ප්‍රධාන යතුර භාවිතා කර tablespace යතුර විකේතනය කර විකේතනය කළ දත්ත ලබා ගත හැකිය. ඔබට පෙනෙන පරිදි, ප්රධාන යතුරේ භ්රමණය මෙම නඩුවේදී උදව් නොකෙරේ. අපි නව ප්‍රධාන යතුර සමඟ tablespace යතුර නැවත සංකේතනය කරමු, නමුත් දත්ත සංකේතනය කිරීමට/විකේතනය කිරීමට භාවිතා කරන සත්‍ය යතුර එලෙසම පවතී. එබැවින්, "හැකර්" හට දත්ත විකේතනය කිරීමට එය දිගටම භාවිතා කළ හැක. කලින් මම ඒක ඉඟි කළා MySQL සඳහා Percona සේවාදායකය සරල tablespace key re-encryption පමණක් නොව, සත්‍ය tablespace re-encryption සිදු කළ හැක. මෙම විශේෂාංගය සංකේතාංකන නූල් ලෙස හැඳින්වේ. කෙසේ වෙතත්, මෙම ක්‍රියාකාරිත්වය මේ මොහොතේ තවමත් පර්යේෂණාත්මක ය.

ප්‍රධාන යතුර සොරකම් කළ විට ප්‍රධාන යතුරු භ්‍රමණය ප්‍රයෝජනවත් වේ, නමුත් ප්‍රහාරකයෙකුට එය භාවිතා කිරීමට සහ මේස අවකාශයේ යතුරු විකේතනය කිරීමට ක්‍රමයක් නොමැත.

නොමිලේ ආදර්ශන පාඩමක් සඳහා ලියාපදිංචි වන්න.

තවත් කියවන්න:

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