سلام به همه پی وی لرنی های عزیز!
به دوره آموزش دوره آموزش سیستم مدیریت پایگاه داده DBMS خوش آمدید.
Database Management System یا سیستم مدیریت پایگاه داده که به صورت خلاصه به آن DBMS می گویند؛ به فناوری ذخیره و بازیابی اطلاعات کاربران با حداکثر کارآیی در کنار اقدامات امنیتی مناسب اشاره دارد. در این آموزش اصول اولیه سیستم مدیریت پایگاه داده یا DBMS مانند معماری آن، مدل های داده، طرحواره داده ها، استقلال داده ها، مدل E-R، مدل رابطه، طراحی بانک اطلاعاتی رابطه ای، و ذخیره سازی و ساختار پرونده و موارد دیگر را می آموزیم.
در جلسه گذشته به بررسی تهیه نسخه پشتیبان از داده ها در سیستم مدیریت پایگاه داده پرداختیم؛ یک حافظه فرار مانند RAM، تمام logs های فعال، بافر دیسک و داده های مرتبط را ذخیره می کند. علاوه بر این، کلیه transactions هایی را که در حال حاضر انجام می شود، ذخیره می نماید که در صورت پاک شدن آن، کلیه گزارش ها و کپی های فعال پایگاه داده از بین می رود. این بازیابی را تقریبا غیرممکن می کند، زیرا هر چیزی که برای بازیابی اطلاعات لازم است از بین می رود. در چنین مواردی ما به تهیه نسخه پشتیبان یا Backup رو می آوریم.
در این جلسه به عنوان آخرین جلسه از این دوره به آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده ( DBMS ) می پردازیم.
DBMS یک سیستم بسیار پیچیده است که صدها transactions در هر ثانیه در آن انجام می شود. دوام و استحکام یک DBMS به معماری پیچیده و نرم افزارهای سخت افزاری و سیستم اساسی آن بستگی دارد. در صورت عدم موفقیت و یا خرابی در transactions ها، انتظار می رود که این سیستم را با کمک یا تکنیک های بازیابی داده ها یا ریکاوری آن ها (Recovery) داده را بازگردانی کرد.
به عنوان اولین موضوع در آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده بیایید با Failure Classification یا طبقه بندی شکست آشنا شویم.
برای این که ببینیم مشکل در کجا رخ داده است باید یک Failure را شکست را به دسته های مختلف تقسیم می کنیم.
یک Transaction هنگامی که به درستی انجام نمی شود را transaction failure می گویند که در آن تنها transactions یا فرآیند معدودی آسیب می بیند.
دلایل شکست Transaction :
گاهی مشکلاتی – خارج از سیستم – ممکن است باعث شود که سیستم به طور ناگهانی متوقف شود و باعث خرابی سیستم شود. به عنوان مثال، قطع شدن منبع تغذیه ممکن است باعث خرابی سخت افزار یا نرم افزار اساسی شود.
نمونه ها ممکن است شامل خطاهای سیستم عامل باشد.
در ابتدای تکامل فناوری، یکی از رایج ترین مشکل ها مشکل درایوهای هارد دیسک یا درایوهای ذخیره سازی بود که به طور مداوم از کار می افتادند.
خرابی دیسک شامل تشکیل بخش های بد ، غیر قابل دستیابی به دیسک ، خرابی سر دیسک یا هرگونه خرابی دیگر است که باعث از بین رفتن تمام یا بخشی از ذخیره سازی دیسک می شود.
در جلسات گذشته با سیستم ذخیره سازی آشنا شدیم؛ به صورت خلاصه، ساختار ذخیره سازی را می توان به دو دسته تقسیم کرد:
هنگام سقوط یک سیستم، ممکن است چندین Transaction انجام شود و پرونده های مختلفی برای آنها باز شود تا موارد داده ها تغییر یابد. Transaction IH از طریق عملیات های مختلفی انجام می شوند، که ماهیت اتمی دارند. اما با توجه به خصوصیات ACID، باید اتمی بودن Transaction ها به عنوان یک کل حفظ شود، یعنی تمام عملیات انجام شود یا این که هیچ کدام انجام نشود.
وقتی DBMS از خراب شدن در امان ماند؛ باید موارد زیر را حفظ کند:
دو روش وجود دارد که می تواند به DBMS در بهبودی و همچنین حفظ اتمی بودن Transaction کمک کند:
و در ادامه آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده می خواهیم بازیابی مبتنی بر ورود به سیستم یا Log-based Recovery را بررسی کنیم.
Log دنباله ای از رکورد هاست که رکورد های اقدامات انجام شده توسط یک Transaction را حفظ می کند. مهم است که logs هاقبل از اصلاح واقعی نوشته شده و در یک رسانه ذخیره سازی پایدار ذخیره شوند که امکان خراب شدن و fail آن وجود ندارد.
ریکاوری Log-based بر اساس زیر کار می کند:
1 | <Tn, Start> |
1 | <Tn, X, V1, V2> |
در متن Tn مقدار X از V1 به V2 تغییر می یابد.
1 | <Tn, commit> |
پایگاه داده می تواند با استفاده از دو روش زیر ویرایش شود:
در ادامه آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده بیایید با ریکاوری هم زمان transaction ها آشنا شویم.
هنگامی که بیش از یک معامله به صورت موازی انجام می شود ، logs ها به هم می چسبند. در زمان بهبود برای سیستم ریکاوری سخت می شود که همه فایل ها را عقب بکشید و سپس شروع به بازیابی و ریکاوری کنید. برای مدیریت این وضعیت، اکثر DBMS های مدرن از مفهوم “checkpoints” استفاده می کنند.
و به عنوان آخرین مطلب در آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده قرار است Checkpoint ها را بشناسیم.
نگهداری از logs های مربوط در زمان واقعی و در محیط واقعی ممکن است تمام فضای حافظه موجود در سیستم را پر کند. با گذشت زمان، فایل log به سیستم ممکن است خیلی بزرگ شود که به هیچ وجه موضوع جالبی نیست و می تواند مشکل ساز شود. در چنین مواقعی ما به استفاده از Checkpoint رو می آوریم. Checkpoint مکانیسمی است که در آن تمام logs های مربوط قبلی از سیستم خارج شده و برای همیشه در یک دیسک ذخیره می شوند. Checkpoint نقطه ای را اعلام می کند که قبل از آن DBMS در حالت مداوم قرار داشته و تمام transaction ها در آن انجام می شود.
وقتی سیستمی که transaction های همزمان دارد خراب شده و بازیابی می شود؛ به روش زیر رفتار می کند:
تمام transactions های موجود در لیست undo-list خنثی شده و logs های مربوطه برداشته می شوند. تمام transactions های موجود در redo-list و logs های مربوط به قبل آنها حذف می شوند و سپس قبل از ذخیره سازی logs های آن ها مجدداً انجام می شوند.
در این جلسه به آشنایی با ریکاوری داده ها در سیستم مدیریت پایگاه داده ( DBMS ) پرداختیم؛ DBMS یک سیستم بسیار پیچیده است که صدها transactions در هر ثانیه در آن انجام می شود. دوام و استحکام یک DBMS به معماری پیچیده و نرم افزارهای سخت افزاری و سیستم اساسی آن بستگی دارد. در صورت عدم موفقیت و یا خرابی در transactions ها، انتظار می رود که این سیستم را با کمک یا تکنیک های بازیابی داده ها یا ریکاوری آن ها (Recovery) داده را بازگردانی کرد.
به پایان این دوره آموزشی رسیدیم اما یادگیری همچنان ادامه دارد؛ امیدوارم این دوره مفید بوده باشد.
با سایر دوره های آموزشی پی وی لرن همراه باشید.