පාඨමාලාව සඳහා නව බඳවා ගැනීම් ආරම්භය අපේක්ෂාවෙන්
මෙම ලිපි මාලාවේ පෙර ලිපියේ (
ලියුම් කවර ගුප්තකේතනය පිටුපස ඇති අදහස නම් සංකේතනය සඳහා භාවිතා කරන යතුරු (tablespace keys) වෙනත් යතුරකින් (ප්රධාන යතුර) සංකේතනය කර තිබීමයි. Tablespace යතුරු ඇත්ත වශයෙන්ම දත්ත සංකේතනය කිරීමට භාවිතා කරයි. රූපමය වශයෙන්, මෙය පහත පරිදි නිරූපණය කළ හැකිය:
ප්රධාන යතුර යතුරු ගබඩාවේ ඇති අතර, මේස අවකාශ යතුරු සංකේතනය කළ වගු වල ශීර්ෂවල ඇත (මේස අවකාශයේ 0 පිටුවේ).
ඉහත පින්තූරයේ:
-
A වගුව යතුර 1 (යතුරු 1) සමඟ සංකේතනය කර ඇත. යතුර 1 ප්රධාන යතුර භාවිතයෙන් සංකේතනය කර A වගුවේ ශීර්ෂයේ සංකේතනය කර ගබඩා කර ඇත.
-
B වගුව යතුරු 2 (යතුර 2) සමඟ සංකේතනය කර ඇත. යතුර 2 මාස්කර් යතුර භාවිතයෙන් සංකේතනය කර B වගුවේ ශීර්ෂයේ සංකේතනය කර ගබඩා කර ඇත.
-
ඒ නිසා.
සේවාදායකයට A වගුව විකේතනය කිරීමට අවශ්ය වූ විට, එය ගබඩාවෙන් ප්රධාන යතුර ලබා ගනී, A වගුවේ ශීර්ෂයෙන් සංකේතනය කළ යතුර 1 කියවයි, සහ යතුර 1 විකේතනය කරයි. විකේතනය කළ යතුර 1 සේවාදායකයේ මතකයේ හැඹිලි කර A වගුව විකේතනය කිරීමට භාවිතා කරයි. .
InnoDB
InnoDB හි, සැබෑ සංකේතනය සහ විකේතනය I/O මට්ටමින් සිදු කෙරේ. එනම්, පිටුව තැටියට ෆ්ලෂ් කිරීමට පෙර සංකේතනය කර තැටියෙන් කියවූ වහාම විකේතනය වේ.
InnoDB හි, සංකේතනය ක්රියා කරන්නේ tablespace මට්ටමේ පමණි. පෙරනිමියෙන් සියලුම වගු වෙනම වගු වල නිර්මාණය වේ (
කිසියම් හේතුවක් නිසා ඔබ වගුවකට ගොනුවක් අක්රිය කර ඇත්නම්, එවිට සියලුම වගු පද්ධති මේස අවකාශය තුළ නිර්මාණය වේ. තුල
ඉදිරියට යාමට පෙර, අපි ප්රධාන යතුරු හැඳුනුම්පතේ ව්යුහය සලකා බැලිය යුතුය. එය UUID, KEY වලින් සමන්විත වේID සහ උපසර්ගය "INNODBKey". එය මෙසේ පෙනේ: INNODBKey-UUID-KEYහැඳුනුම්පත.
UUID යනු සංකේතාත්මක වගු අවකාශය සහිත සේවාදායකයේ uuid වේ. යතුරහැඳුනුම්පත යනු දිනෙන් දින වැඩි වන අගයක් පමණි. ඔබ මුලින්ම ප්රධාන යතුරක් සාදන විට යතුරID යනු 1. යතුරු භ්රමණය අතරතුර, නව ප්රධාන යතුරක් සාදන විට, KEYID = 2 සහ එසේ ය. අපි මෙම ලිපි මාලාවේ පසු ලිපි වලින් ප්රධාන යතුරු භ්රමණය ගැන වැඩි විස්තර කතා කරමු.
දැන් අපි ප්රධාන යතුර හැඳුනුම්කාරකය කෙබඳුදැයි දනිමු, අපි සංකේතාත්මක වගු අවකාශයේ ශීර්ෂය දෙස බලමු. වගු ඉඩක් සංකේතනය කළ විට, සංකේතාංකන තොරතුරු ශීර්ෂයට එක් කෙරේ. එය මෙසේ පෙනේ:
KEYID යනු KEY යඅප දැනටමත් සාකච්ඡා කර ඇති ප්රධාන යතුරු හැඳුනුම්පතේ හැඳුනුම්පත. UUID යනු සේවාදායකයේ uuid වන අතර එය ප්රධාන යතුරු හඳුනාගැනීමේ ද භාවිතා වේ. TABLESPACE KEY - බිටු 256 කින් සමන්විත වගු අවකාශ යතුර, සේවාදායකය විසින් අහඹු ලෙස ජනනය කරයි. ආරම්භක දෛශිකය (IV, ආරම්භක දෛශිකය) ද අහඹු ලෙස ජනනය කරන ලද බිටු 256 කින් සමන්විත වේ (එය බිටු 128 විය යුතු වුවද). IV AES සංකේතනය සහ විකේතනය ආරම්භ කිරීමට භාවිතා කරයි (බිට් 256 න් 128 ක් පමණක් භාවිතා වේ). අවසානයේ TABLESPACE KEY සහ IV සඳහා CRC32 චෙක්සම් එකක් ඇත.
මෙච්චර වෙලා මම හෙඩර් එකේ encrypt කරපු tablespace key එකක් තියෙනවා කියලා ටිකක් සරළ කළා. ඇත්ත වශයෙන්ම, tablespace යතුර සහ ආරම්භක දෛශිකය ප්රධාන යතුර භාවිතයෙන් එකට ගබඩා කර සංකේතනය කර ඇත. tablespace යතුර සහ ආරම්භක දෛශිකය සංකේතනය කිරීමට පෙර, CRC32 ඒවා සඳහා ගණනය කරන බව මතක තබා ගන්න.
CRC32 අවශ්ය වන්නේ ඇයි?
කෙටියෙන් කිවහොත්, ප්රධාන යතුරේ වලංගුභාවය තහවුරු කිරීම සඳහා. Tablespace යතුර සහ ආරම්භක දෛශිකය විකේතනය කිරීමෙන් පසුව, චෙක්සම් එකක් ගණනය කර ශීර්ෂයේ ගබඩා කර ඇති CRC32 සමඟ සංසන්දනය කරනු ලැබේ. චෙක්සම් ගැළපෙන්නේ නම්, අපට නිවැරදි ප්රධාන යතුර සහ මේස ඉඩ යතුර තිබේ. එසේ නොමැති නම්, tablespace එක නැති වූ ලෙස සලකුණු කර ඇත (අපට තවමත් එය විකේතනය කළ නොහැක).
ඔබට ඇසිය හැක: යතුරු සත්යාපනය සිදු කරන්නේ කුමන අවස්ථාවේදීද? පිළිතුර සේවාදායකය ආරම්භ වන විට ය. සංකේතාත්මක වගු / වගු සහිත සේවාදායකය ආරම්භයේදී UUID, KEY කියවයිශීර්ෂයෙන් ID සහ ප්රධාන යතුරු හැඳුනුම්පතක් ජනනය කරයි. ඉන්පසු එය යතුරුකරණයෙන් අවශ්ය ප්රධාන යතුර ලබා ගනී, මේස අවකාශයේ යතුර විකේතනය කර චෙක්සම් සත්යාපනය කරයි. නැවත වරක්, චෙක්සම් ගැලපේ නම්, සියල්ල පිළිවෙලට තිබේ, නැත - මේස අවකාශය අතුරුදහන් ලෙස සලකුණු කර ඇත.
ඔබ මෙම ලිපි මාලාවේ අවසාන ලිපිය කියෙව්වොත් (
ප්රධාන යතුර භාවිතයෙන් සංකේතනය කිරීමේ වාසි සහ අවාසි ගැන ටිකක් කතා කිරීමට කාලයයි. විශාලතම වාසිය නම් ඔබට අවශ්ය වන්නේ එක් සංකේතාංකන යතුරක් (ප්රධාන යතුර) පමණක් වන අතර එය ඔබගේ සංකේතාත්මක දත්ත වලින් වෙන්ව තබා ගනු ඇත. මෙය සේවාදායක ආරම්භය වේගවත් කරන අතර ගබඩාව කුඩා කරයි, එය කළමනාකරණය කිරීම පහසු කරයි. තවද එකම ප්රධාන යතුර නැවත උත්පාදනය කිරීමට පහසුය.
කෙසේ වෙතත්, ප්රධාන යතුරු සංකේතනයට එක් විශාල අඩුපාඩුවක් ඇත: tablespace_key සමඟ මේස ඉඩක් සංකේතනය කළ පසු, එය සෑම විටම එකම යතුරකින් සංකේතනය වී පවතී. ප්රධාන යතුරු භ්රමණය මෙතැනට උදව් නොකරයි. මෙය අවාසියක් වන්නේ ඇයි? MySQL හි දෝෂ ඇති බව අපි දනිමු, එය බිඳ වැටීමට සහ මූලික ගොනුවක් සෑදිය හැකිය. මූලික ගොනුවේ සේවාදායක මතක ඩම්ප් එකක් අඩංගු බැවින්, ඩම්ප් එකේ විකේතනය කරන ලද මේස ඉඩ යතුර අඩංගු වීම සිදුවිය හැක. ඊටත් වඩා නරක දෙය නම්, විකේතනය කරන ලද මේස අවකාශ යතුරු මතකයේ ගබඩා කර ඇති අතර එය තැටියට මාරු කළ හැකිය. ඔබට මෙම ගොනු සහ swap කොටස වෙත ප්රවේශ වීමට root අවසර අවශ්ය බැවින් මෙය අවාසියක් නොවන බව ඔබට පැවසිය හැක. ඔව්. නමුත් root අවශ්ය වන්නේ ටික වේලාවකට පමණි. යමෙකුට විකේතනය කරන ලද මේස අවකාශ යතුර වෙත ප්රවේශ වූ පසු, ඔහුට/ඇයට root ප්රවේශය නොමැතිව වුවද, දත්ත විකේතනය කිරීමට එය දිගටම භාවිතා කළ හැක. මීට අමතරව, තැටිය සොරකම් කළ හැකි අතර, තෙවන පාර්ශවීය මෙවලම් භාවිතයෙන් swap / core ගොනු කියවිය හැක. TDE හි අරමුණ වන්නේ තැටිය සොරකම් කළත් එය කියවිය නොහැකි වීමයි. තුල
තවත් කියවන්න:
මූලාශ්රය: www.habr.com