ترمیم پایگاه داده ها
Download
Report
Transcript ترمیم پایگاه داده ها
پایگاه داده پیشرفته
فصل چهارم
ترمیم
روح اله امیدوار -علی حیدری -محمد دژداخ -حامد حسینی
دلیل لزوم ترمیم
•
پایگاه داده ها بالقوه در معرض اسیب است (.انواع نقص (عیب) و درنتیجه خرابی ممکن است در پایگاه داده بروز کند).
•
سیستم مدیریت پایگاه داده ها باید بتواند در صورت بروز خرابی پایگاه داده ها را ترمیم و اسیب و خسارات وارده بران را جبران کند.
2
تعریف ترمیم
•
ترمیم یعنی بازگرداندن پایگاه داده ها به وضع سازگاری که درست قبل از بروز خرابی داشت (بازگرداندن به اخرین وضع سازگار ،به گونه ای که
اثری از خرابی در ان نباشد).
•
3
ترمیم ،فرایندی است که در صورت بروز خرابی ،پایگاه داده ها را به وضع صحیح برمی گرداند.
ترمیم پایگاه داده ها
استراتژی واحد مدیریت ترمیم ،برای ترمیم پایگاه داده ها پس از بروز خرابی به دو صورت زیر است:
1
• فرایند بازانجام )بازکرد(
• فرایند پادکرد )خنثی سازی(
2
1- Redoing
2 Undoing
4
خرابیها
انواع خرابی به طور کلی
3
• خرابی سیستمی(1خدشه نرم)
سبب می شود تا حداقل یک و معموال تمام تراکنشهای در جریان در سیستم اسیب ببینند ولی داده های ذخیره شده درحافظه جانبی
دچارخرابی نمی شوند.
مثل قطع جریان برق در حافظه اصلی
•
خرابی سیستمی وقتی که پایگاه داده های مقیم درحافظه اصلی داشته باشیم ،پیامدهای نامطلوب بیشتری می تواند داشته باشد که موضوع
این فصل نیست.
4
2
خرابی رسانه ای (خدشه سخت)
سبب ایجاد خرابی در تمام یا قسمتی از داده های ذخیره شده در حافظه مانا می شود و حداقل روی ان تراکنشهای ی که در حال استفاده از
داده ها هستند ،تاثیر می گذارد.
مثل خرابی در حافظه مانا(دیسک)
1- System failure
2- Media failure
3- Soft crash
5
4- Hard crash
انواع خرابی از نظر حیطه تاثیر
•
1
خرابی موضعی
تنها در اجرای یک تراکنش خاص خلل وارد می سازد و منجر به طرد تراکنش می شود که می گوییم خرابی تراکنش پیش امده است.
بروز سرریز در محاسباتی که تراکنش انجام می دهد.
انجام عمل تقسیم برصفر
وجود اشتباه منطقی در برنامه سازی
دادن مقادیر اشتباه به پارامترها در برنامه
•
خرابی سراسری
2
در اجرای تمام تراکنشهای در جریان خلل وارد می کند ومنجر به توقف اجرای تمام برنامه ها می شود وممکن است سیستمی یا رسانه ای
باشد.
قطع جریان برق در پردازنده مرکزی
بروزخرابی درحافظه نامانا (مثال در حافظه نهان که دراختیار مدیریت ترمیم باشد).
بروزخرابی درحافظه مانا
6
1- Local Failure
2- Global failure
انواع خرابی از نظر طول مدت
•
دائمی
1
خرابی در سخت افزار
•
ادوار
•
گذرا
ی2
3
سنگینی بار سیستم
خرابی ناشی ازافزایش دمای محیط
1- permanent
2- Intermittent
3- Transient
7
عوامل بروزخرابی
•
•
•
•
•
•
•
•
•
8
اشتباه برنامه سازی :ورودی نادرست ،بروز سرریز ،به سررسیدن مهلت اجرای برنامه و ...
اشتباه اپراتور :اشتباه در ، JCLدر جابجای ی دیسکها ،در گذاشتن نوارها و...
اشتباه سیستمی :سیستم عامل یا سیستم مدیریت پایگاه داده ها،مثل بن بست
اشکال سخت افزاری :در پردازنده اصلی ،در حافظه اصلی ،در رسانه های ذخیره سازی ،در شبکه
اشکال نرم افزاری :در سیستم عامل ،در سیستم مدیریت پایگاه داده ها و در برنامه های واسط :مثل ویروس و ...
اشتباه عملیاتی (اشتباه درعملیات مربوط به فرایند ترمیم) :از بین رفتن نسخه پشتیبان ،بازنویسی روی دیسک حاوی داده ها و...
رویدادهای محیطی :اتش سوزی،سیل،زلزله،قطع جریان برق
عملیات اسیب رسان توسط انسان :خرابکاری،دزدی و ...
اشکاالت دیگردر سیستم کامپیوتری :خرابی در خطوط ارتباط ،در پایانه و ...
زیرسیستم مدیریت ترمیم
•
•
•
درهرسیستم مدیریت پایگاه داده ها (غیر از سیستمهای تک کاربری) باید یک زیرسیستم برای مدیریت ترمیم پایگاه داده ها وجود داشته باشد.
طراحی زیرسیستمی که بتواند در همه انواع خرابیها ،به طور کارا عمل کند و همه اسیبها و خرابیها را جبران نماید ،شدنی نیست .اما سیستم باید
توان ترمیم کارای خرابیهای رایج را بدون دخالت انسان داشته باشد.
فرکانس بروز خرابیها در یک سیستم یکسان نیست اما سیستم درهرحال باید بتواند درهر مورد به طور مناسب اقدام کند.
به عنوان مثال ممکن است :
خرابی تراکنش چند بار در دقیقه پیش اید.
خرابی سیستمی چند بار در ماه پیش اید.
خرابی رسانه ای چند بار در سال بروز کند.
9
اجزای زیرسیستم مدیریت ترمیم
•
•
10
مدیر ترمیم (واحد نرم افزاری)
امکاناتی برای ترمیم
حافظه مانا
حافظه نامانا
فایل ثبت
ایجاد نقطه وارسی
لیستهای کاری
نسخه پشتیبان
مدیرترمیم
1
•
مدیرترمیم از واحدهای الیه مدیریت محیط پایگاه داده ها در سیستم مدیریت پایگاه داده ها است.
•
دشوارترین واحد در این سیستم ،از نظر طراحی و پیاده سازی ،همین واحد مدیریت ترمیم است ،زیرا زمانی فراخوانی می شود که سیستم در
حالت خرابی است.
•
وظیفه اصلی این واحد ،انجام فرایند ترمیم با استفاده از الگوریتمها و تکنیکهای ی است.
•
مدیر ترمیم با بعضی از مدیریتهای دیگر در سیستم از جمله مدیر حافظه نهان و زمان بند اجرا ارتباط دارد.
11
2
1- Recovery Manager
2- Cache Manager
محیط عملیاتی مدیرترمیم و ارتباطات ان با واحدها و اجزای دیگر سیستم
12
مدیر ترمیم
مدیر ترمیم با دو واحد زیر ارتباط
مستقیم دارد:
زمان بند اجرا •
مدیر بافر نهان •
13
وظیفه مدیر ترمیم پس از وقوع نقض سیستمی :
فاز تحلیل :بررسی وضیعت بافرهای نهان جهت شناسای ی :
•
•
صفحات تغییر یافته
تراکنش های فعال در لحظه بروز خرابی
صفحه تغییر یافته ،صفحه ای است که تغییرات اعمال شده در ان توسط یک تراکنش ،هنوز روی دیسک منتقل نشده اند .
14
(ادامه) وظیفه مدیر ترمیم پس از وقوع نقض سیستمی :
•
بعد از فاز تحلیل ،یکی یا هردو عمل زیر بسته به الگوریتم ترمیم انجام می شود :
عمل REDO
( تکرار عملیات انجام شده توسط تراکنش تثبیت شده)
عمل UNDO
(خنثی کردن اثر اجرای ناقص تراکنش طرد شده و رفع تاثیرات بروز نقص در پایگاه داده ها)
برای انجام این اعمال از فایل ثبت ( )log fileاستفاده می شود .
15
عملیات ترمیم توسط مدیر ترمیم صورت می گیرد و کاربر دخالتی در ان ندارد اما اخیرا پیشنهاداتی ارائه شده که بخشی از اعمال ترمیم و به ویژه عمل
UNDOبه صورت تعاملی با کاربر ،انجام شود.
16
روشهای تخلیه بافر نهان
زمانی که سیستم دستور نوشتن را اجرا می کند دو روش برای انتقال نتیجه عمل نوشتن وجود دارد :
•
بهنگام سازی با تاخیر
•
بهنگام سازی بالفاصله
17
بهنگام سازی با تاخیر
•
تیجه عمل بهنگام سازی داده تغییر یافته در بافر نهان ،تنها پس از انکه تراکنش به نقطه تثبیت رسید ،به پایگاه داده ها در حافظه مانا
منتقل می شود و بافر تخلیه (فالش) می شود .
•
در اثنا عمل تثبیت تراکنش ،نسخه ای از داده تغییر یافته ،در فایل ثبت ( )log fileنوشته می شود .
•
اگر تراکنش قبل از رسیدن به نقطه تثبیت دچار خرابی شود عمل undoالزم نیست زیرا هیچ تغییری در پایگاه داده ها ایجاد نشده
است .
•
18
اما عمل redoممکن است الزم باشد ،چون هنوز نتیجه اجرای تراکنش به پایگاه داده ها منتقل نشده است.
بهنگام سازی بالفاصله
•
•
•
•
19
نتیجه عمل بهنگام سازی داده تغییر یافته در بافر نهان ،قبل از انکه تراکنش به نقطه تثبیت برسد ،به پایگاه داده ها منتقل و بافر تخلیه(فالش)
می شود .
نسخه ای از داده تغییر یافته ،قبل از انکه بافر نهان تخلیه شود ،وارد فایل ثبت می شود .
اگر تراکنش ،بعد از اعمال تغییرات در داده و قبل از رسیدن به نقطه تثبیت ،دچار خرابی شود ،تراکنش واگردانده می شود و اثر ناقص ان در
پایگاه داده ها undoneمی شود ولی نیازی به عمل redoنیست.
اگر تراکنش به تثبیت برسد ،پیش از انکه تمام تغییرات در پایگاه داده ها اعمال شوند ،ترمیم با روش عمومی تر undo/redoانجام می
شود.
روشهای تخلیه بافر نهان
•
روش غیر دزدی :در واقع همان روش بهنگام سازی با تاخیر می باشد که در ان صفحه به هنگام در امده توسط یک تراکنش تنها پس از تثبیت ،بر
روی دیسک نوشته می شود .
•
روش دزدی (قاپیدن) :در واقع همان روش بهنگام سازی بالفاصله می باشد .اصطالحا گ فته می شود سیستم قاب بافر را از یک تراکنش می دزدد تا
در اختیار تراکنشی دیگر قرار دهد و زمانی به کار می رود که مدیر بافر نهان ،فضای بافر را برای تراکنش دیگری الزم دارد و صفحه ای را جایگزین
صفحه موجود در بافر می کند.
مزیت روش دزدی :نیاز به حافظه زیاد برای تامین بافرها نیست .
20
در روش بهنگام سازی با تاخیر دو حالت داریم :
•
•
روش تخلیه اجباری (باشتاب)
روش تخلیه غیر اجباری (بدون شتاب)
اگر تمام صفحات بهنگام در امده توسط یک تراکنش ،بالفاصله پس از تثبیت ،به دیسک منتقل شوند ،می گوییم سیستم از روش تخلیه
اجباری استفاده می کند در غیر این صورت از روش تخلیه غیر اجباری استفاده می کند .
21
•
مزیت روش تخلیه غیر اجباری نسبت به روش اجباری ان ،درکاهش حجم عملیات ورودی/خروجی و در نتیجه کاهش هزینه این عملیات است.
•
در سیستمهای موجود عمدتا از استراتژی دزدی/تخلیه غیر اجباری استفاده می شود.
•
روش غیر دزدی در حالت تراکنشهای طوالنی که معموال در اسلوب یکجا اجرا می شوند غیر واقع بینانه است (مثل پردازش حقوق) زیرا فرض می
شود که تمام صفحات تغییر یافته توسط تراکنشهای در جریان را می توان در بافر ها نگه داشت.
22
امکانات ترمیم
حافظه مانا :
• فایل ثبت
• پایگاه داده ها
• نسخه های پشتیبان
حافظه نامانا :
• بافر نهان
23
حافظه مانا
•
حافظه ای است صفحه بندی شده که در ان عمل نوشتن یک صفحه ،انجام می شود .
•
درقبال نقص سیستمی از اسیب مصون است.
حافظه مانای برخط (دیسک)
•
حافظه مانا
حافظه مانای برون خط (نوار مغناطیسی)
24
حافظه نامانا
•
بخشی از حافظه اصلی است .
•
بافر ها در ان ایجاد و مدیریت می شوند .
•
به ان حافظه نهان یا بافر نهان گ فته می شود .
•
در صورت بروز خرابی ،محتوای ان از بین می رود .
•
عملیات بهنگام سازی تراکنش ،ابتدا بر روی صفحه ای در بافر نهان انجام می شود .
25
حافظه نامانا
26
گذاشتن صفحات در بافرها وانتقال انها روی دیسک ،از وظایف سیستم عامل است اما سیستم مدیریت پایگاه داده ها ،به دلیل تاثیر این عملیات
در کارای ی رویه های ترمیم ،خود مسئولیت ان را به عهده دارد و این کار را با فراخوانی روالهای سطح پایین سیستم عامل انجام می دهد .
27
جدول راهنما
•
برای مدیریت حافظه نهان استفاده می شود .
•
سیستم قبل از انجام هرگونه عمل خواندن /نوشتن ،صفحه مورد نظر را در بافر جستجو می کند و در صورت نیافتن ،ان را از روی دیسک،
مکان یابی و به حافظه نامانا منتقل می کند.
28
جدول راهنما
•
•
•
29
این جدول شامل دو نوع بیت به نام های بیت صفحه تغییر یافته ( )Dirty bitو بیت چسباندن – واکندن ( )Pin-unpin bitمی باشد
که برای هر بافر در نظر گرفته شده است.
بیت صفحه تغییر یافته نشان می دهد که ایا صفحه مورد نظر تغییر یافته است .
بیت چسباندن –واکندن اگر دارای مقدار یک باشد ،یعنی هنوز نمی توان صفحه موجود در ان بافر را به دیسک منتقل کرد.
فایل ثبت ( ) Log file
فایل ثبت که به ان فایل رویدادنگاری و فایل اثر نیز گ فته می شود ،فایلی است حاوی اطالعاتی در مورد چگونگی اجرای هر تراکنش و عملیاتی
که تراکنش روی یک فقره داده انجام می دهد .این فایل روی حافظه مانا ذخیره می شود و در صورت بروز خرابی از اسیب مصون است و برای
حصول اطمینان از محفوظ ماندن محتوای این فایل دو و یا بیش از دو نسخه از این فایل تولید وبه طور جداگانه نگهداری می شود.
30
ساختار رکورد فایل ثبت
ا
معموال حداقل دو نوع رکورد در این فایل وجود دارد:
انواع رکورد و ساختار هر نوع رکورد فایل ثبت در سیستم های مختلف یکسان نیستند .اما
31
رکورد تراکنش
Transaction Record
رکورد نقطه وارسی
Check Point Record
ا
معموال فیلدهای زیر را دارد:
رکورد تراکنش
شناسه تراکنش
نوع رکورد از نظر عمل تراکنش(شروع ،درج ،بهنگام سازی ،حذف ،طرد وتثبیت)
شناسه داده ای که عمل روی ان انجام می شود(.عملیات درج ،حذف و بهنگام سازی)
پیش تصویر(مقدار داده پیش از عملیات بهنگام سازی وحذف)
پسا تصویر(مقدار داده پیش از عملیات درج وبهنگام سازی )
اشاره گر به رکورد قبلی تراکنش
اشاره گر به رکورد بعدی تراکنش
شماره سریال رکورد ثبت
زمان انجام هر عمل
ا
دارد،مثال اگر
همیشه الزم نیست که هم پیش تصویر وهم پساتصویر در فایل ثبت ذخیره شوند،بستگی به روش ترمیم
سیستم undoرا انجام ندهد نیازی به پیش تصویر نیست ،اگر هر دو تصویر ذخیره شوند فایل ثبت را «دوسویه» گویند.
32
33
ثبت با نوشتن پیشرس )(WAL
یعنی اطالعات قبل از رفتن در پایگاه در Log fileثبت شده باشند و نوشتن رکورد حاوی اطالعات در فایل ثبت در اک ثر سیستم ها
به طور پیشرس انجام می شود و ازجمله سیستم های ARIES,INGRES,Sybase,Oracle,از این روش
استفاده می کنند.
چگونگی ثبت با نوشتن پیشرس و محتوای رکورد ثبت بستگی به طرز انتقال نتیجه عمل نوشتن به پایگاه داده های مانا دارد که در زیر بیان
می شود:
ثبت با نوشتن پیشرس در بهنگام سازی با تاخیر
ثبت با نوشتن پیشرس در بهنگام سازی بالفاصله
34
ثبت با نوشتن پیشرس در بهنگام سازی با تاخیر
در این روش رکورد ثبت حاوی پسا تصویر وسایر اطالعات الزم (و نه پیش تصویر ) قبل از انتقال پسا تصویر به پایگاه ،در فایل ثبت نوشته می شود .
وقتی که تراکنش به تثبیت می رسد ،یک رکورد تثبیت نیز در فایل ثبت نوشته می شود .حال اگر یک خرابی یا نقص سیستمی بعد از رسیدن
تراکنش به مرحله تثبیت وقبل از انتقال نتیجه بهنگام سازی به پایگاه مانا پیش اید ،سیستم پساتصویر را از فایل ثبت میخواند وعمل
REDOرا انجام می دهد .اگر تراکنش طرد شود نیازی به عمل UNDOنخواهد بود و تنها یک رکورد طرد برای تراکنش در فایل ثبت
نوشته می شود.
35
36
ثبت با نوشتن پیشرس در بهنگام سازی بالفاصله
در این روش ،پیش از انکه داده در حافظه نهان بهنگام در اید ،پیش تصویر در بافر فایل ثبت نوشته می شود و وقتی تراکنش به مرحله
تثبیت برسد ،پیش تصویر باید در فایل ثبت نوشته شود و سپس پسا تصویر به پایگاه مانا انتقال یابد .وقتی که خرابی بروز کند سیستم
با خواندن فایل ثبت ،پیش تصویر را یافته وعمل Undoرا انجام می دهد و ا
طبعا رکورد طرد هم برای تراکنش در فایل ثبت نوشته
می شود.
37
38
عملیات UNDO
39
عملیاتREDO
40
انواع فایل ثبت
• فایل ثبت فیزیکی
• فایل ثبت منطقی
فایل ثبت فیزیکی فایلی است که در ان اطالعاتی در مورد مقادیر داده های نوشته شده توسط تراکنش ها ذخیره می شود.
فایل ثبت منطقی فایلی است که دران اطالعاتی در مورد خود عملیات تراکنشها وجود دارد و نه مقادیر تولید شده .
41
42
انواع فایل ثبت
.1
.2
فایل ثبت بر خط ()online log file
فایل ثبت برون خط ()offline log file
•
logfileفعال :فایلی است که دران تراکنش ها در حال انجام شدن هستند اما هنوز هیچ وضعیتی ( )commit or abortرا به
خود نگرفته اند.
•
logfileغیر فعال :زمانیکه حجم عملیات روزانه در پایگاه داده زیادباشد ،نگهداری تمام فایل ثبت به طور فعال همیشه امکان پذیر
نیست بنابراین بخشی از فایل ثبت بطور برون خط (ارشیو ،بایگانی) نگهداری میشود ،تا در صورت لزوم قسمتهای الزم بطور فعال
درایند.
•
•
فایل ثبت فعال ،عمدتا برای ترمیم خرابی های جزئی و کوچک (مثل طرد تراکنش در پ ی بروز بن بست) استفاده می شود.
ترمیم خرابی های کلی (مثل خرابی داده ها روی دیسک) نیاز به زمان بیشتری داشته و بخش قابل مالحظه ای از فایل ثبت در این کار
الزم است.
43
توجه:
•
فایل ثبت از عوامل بروز تنگنا ( )Bottleneckاست .
•
سرعت عملیات نوشتن در این فایل در کارای ی سیستم پایگاه داده تاثیر بسزای ی دارد.
زباله روبی فایل ثبت:
از انجای ی که فایل ثبت مرتبا در حال افزایش است و ظرفیت حافظه مانا محدود میباشد ،برای جلوگیری از رشد بیش از حد فایل ثبت ،سیستم باید
فضای اشغال شده توسط رکوردهای ثبت ناالزم را ازاد کند و فضا را دوباره مورد استفاده قرار دهد.
44
قواعد مربوط به زباله روبی:
این قواعد توسط مدیر ترمیم بیان می شود.
اگر < >T1,W,D,vیک رکورد ثبت باشد درصورتی میتوان ان را حذف کرد اگر و فقط اگر:
تراکنش ،T1طرد شده باشد.
.1
تراکنش ،T1تثبیت شده باشد ولی یک تراکنش تثبیت شده دیگر مثل ،T2بعد از نوشتن توسط ، T1مقدار Yرا برای داده Dنوشته باشد.
.2
.3این قاعده برای زمانی است که مدیر ترمیم از UNDOاستفاده نکند:
رکورد < >T1,W,D,vدر صورتی حذف میشود که
• vاخرین مقدار تثبیت شده و ذخیره شده در پایگاه داده باشد
• و این رکورد ،تنها رکورد ثبت برای داده Dباشد.
در این صورت مدیر ترمیم ،پس از حذف این رکورد ،یک رکورد ثبت قبلی تر را اشتباها بعنوان رکورد ثبت حاوی اخرین مقدار تثبیت شده برای Dدر نظر
نمیگیرد.
45
مثالی از فایل ثبت در محیط عملیاتی
46
ایجاد نقطه وارسی):(ChekPoint
همانطور که گ فته شد مدیر ترمیم ،برای تصمیم گیری در مورد رفتار با هر تراکنش و چگونگی ترمیم پایگاه دادها از فایل ثبت استفاده میکند ،
اما مشکل زمانی است که:
سیستم نمیداند رکوردهای نگهداری شده در فایل ثبت را تا کجا بررسی کند(.حتی ممکن است رکوردهای ناالزم در فایل ثبت جستجو و بررسی شده و
تراکنشهای ی که قبال بدون مشکل تثبیت شده اند بار دیگر REDONEشوند).
حال برای رفع این مشکل و درنتیجه کاهش حجم عملیات پویش و جویش در فایل ثبت از تکنیک ایجاد نقطه وارسی استفاده میشود.
47
ایجاد نقطه وارسی عبارت است از:
نوشتن اطالعاتی در حافظه مانا در حین پردازش تراکنش ها ،به منظور کاهش تعداد رکوردهای ی که مدیر ترمیم باید در فایل ثبت بررسی کند.
دو روش وجود دارد:
روش ایجاد نقطه وارسی با نوشتن در محتوای حافظه نهان()cache
روش ایجاد نقطه وارسی با تثبیت ()commit
48
نحوه ایجاد نقطه وارسی:
سیستم یک رکورد به صورت < >checkpointو یا به صورت
< >checkpoint , Lدر logfileمی نویسد.
:Lلیست تراکنش های فعال در لحظه ایجاد نقطه وارسی است.
بنابراین با نوشته شدن این رکورد در فایل ثبت ،سیستم به هنگام ترمیم متوجه میشود تا کجا بایستی فایل را بررسی کند.
نک ته :تمام تراکنش های ی که رکورد < >commit , Tمربوطه به انها قبل از
رکورد وارسی باشد ،دیگر نیاز به REDONشدن ندارند.
زیرا :این نقطه تضمین میکند که تمام تراکنش های تثبیت شده تا ان نقطه ،نتیجه ذخیره شده در پایگاه داده دارند.
49
مثالی از نقطه وارسی
Tc
Tf
T1
T2
T3
T4
checkpoint
checkpoint
system failure
نادیده گرفته می شود:T1
REDONE: T3 وT2
UNDONE:T4
•
•
•
مثالی دیگر از نقطه وارسی
Checkpoint
T1
Crash
T2
T3
Time
REDONE: T2 وT1
UNDONE:T3
به دو طریق نقطه وارسی ایجاد میشود:
.1
ایجاد نقطه وارسی بطور زمانی(مثال هر mدقیقه)
.2
برحسب تعداد تراکنش های commitشده ،بعد از اخرین نقطه وارسی
*مدیر ترمیم فاصله بین دو نقطه وارسی را تعیین میکند*.
مزایای نقطه وارسی:
کم هزینه است (.میتواند در یک ساعت 3یا 4بار انجام شود).
.1
هرچه تعداد نقطه وارسی بیشتر باشد ،زمان ترمیم کمتر خواهد بود.
.2
*اما با افزایش سطح چند برنامه سازی زمان ترمیم افزایش می یابد*.
52
فرایند ایجاد نقطه وارسی با نوشتن در حافظه :cashe
.1
.2
.3
.4
اجرای تمام تراکنش ها موقتا معلق میشود.
محتوای تمام بافرهای ی که تغییر یافته باشند (صفحات تغییر یافته) ،تخلیه اجباری میشوند.
یک رکورد < >checkpointدر فایل ثبت نوشته میشود ( و فایل روی دیسک برده میشود).
اجرای تراکنش ها از سر گرفته میشود.
عیب این روش :
مدت زمانی صرف انتظار تخلیه محتوای حافظه نهان میشود.
*این انتظار را نیز میتوان با روش ایجاد نقطه وارسی شوال ( )Fuzzy checkpointingاز بین برد*.
53
فرایند ایجاد نقطه وارسی با تثبیت
در این روش ،روند پردازش تراکنشها بطور زمانی انجام نمیشود ،بلکه :
منتظر ماندن سیستم تا زمانیکه تراکنشهای فعال به نقطه commitیا Abortبرسند.
منتقل شدن صفحات تغییر یافته روی دیسک
ایجاد شدن رکورد نقطه وارسی در logfile
نک ته:
• در این روش ،در لحظه ایجاد نقطه وارسی ،اخرین مقدار تثبیت شده هر فقره داده ای که تراکنش روی ان عمل نوشتن انجام داده است ،در
پایگاه داده ذخیره شده است
• پیش ازلحظه ایجاد نقطه وارسی ،رکورد commitشده تراکنش در log fileنوشته شده است.
54
مشکل اصلی این روش:
عدم کارای ی است ،زیرا کاربران باید منتظر بمانند تا تراکنش های فعال کارشان تمام شود و محتوای حافظه نهان تخلیه گردد.
ایجاد نقطه وارسی
چهار روش برای ایجاد نقطه عبارتند از:
نقطه وارسی تراکنش :
در این روش ،هر بار که تراکنشی به تثبیت برسد ،ضمن انجام تخلیه اجباری بافر (ها) نقطه وارسی ایجاد می شود.
نقطه وارسی تراکنش – سازگار:
در این روش ،سیستم امکان می دهد تا تراکنش های در جریان به مرحله پایان برسند و سپس نقطه وارسی ایجاد
می شود .این روش همانست که در برخی از متون با اصطالح نقطه وارسی با تثبیت ،مطرح می شود.
55
نقطه وارسی عمل سازگار:
در این روش ،شبیه روش تراکنش – سازگار است اما مبنای کار عملیات بهنگام سازی است و نه تراکنش های در
جریان .پس از انکه تمام عمل های بهنگام سازی انجام شوند ،سیستم نقطه وارسی را ایجاد میکند.
نقطه وارسی شوال:
در روش شوال در اساس برای کاهش حجم عملیات انتقال صفحات به پایگاه داده های مانا (به دیسک) ایجاد شده
است .در این روش به جای انتقال تمام صفحات در هر بار ایجاد نقطه وارسی ،تنها ان صفحاتی که تا زمان ایجاد اخرین نقطه وارسی ،منتقل
نشده اند ،به پایگاه انتقال داده می شوند.
56
لیستهای کاری
مدیر ترمیم ،برای ترمیم پایگاه داده ها ،تعدادی لیست کاری هم اماده میکند.
که عبارتند از:
لیست تراکنش های فعال:
این لیست در زمان ایجاد نقطه وارسی اماده می شودو گاه ادرس ان و یا خود لیست که حاوی شناسه تراکنش های
فعال در لحظه ایجاد نقطه وارسی است،در رکورد نقطه وارسی در فایل ثبت ذخیره می شود.
لیست UNDO
این لیست حاوی شناسه ترکنش های ی است که باید در فرایند ترمیم UNDO ،شوند.
لیست REDO
در این نوع لیست شناسه تراکنشهای ی قرار داد که باید در فرایند ترمیم REDO ،شوند.
57
نسخه پشتیبان
•
•
•
58
یکی دیگر از امکانات ترمیم است که در اساس در ترمیم خرابی رسانه ای بکار می اید.
نسخه پشتیبان نسخه ای است از محتوای پایگاه داده ها در وضع سازگار و گاه محتوای فایل ثبت.
نسخه پشتیبان بطور پریودیک تولید می شود.گاه برای اطمینان بیشتر ،دو نسخه پشتیبان ایجاد می شود.
روش های ایجاد نسخه پشتیبان
روش نظیر سازی:
دراین روش ،نسخه ای از هر دیسک بر خط ،روی دیسک دیگری نوشته می شود .در واقع ،محتوای هر دیسک ،یک
نظیر روی دیسک دیگر دارد .در این روش هر عمل نوشتن باید روی هر دو دیسک و بطور پشت سر هم انجام
شود :ابتدا عمل نوشتن روی یک دیسک و پس از حصول اطمینان از انجام صحیح عمل نوشتن ،عمل نوشتن روی
دیسک دیگر انجام می شود .عمل خواندن را می توان از هریک از دو دیسک انجام داد.
روش ارشیو سازی (بایگانی کردن):
ً
معموال روی نوار مغناطیسی نوشته
محتوای پایگاه داده ها بطور پریودیک در یک پایگاه داده های ارشیو (بایگانی )،
می شود (نسخه برداری می شود) .نسخه ای از فایل ثبت نیز در ارشیو ذخیره می شود .بنابراین در فایل ارشیو،
اطالعات مربوط به عملیات بهنگام سازی تمام تراکنش ها نیز ذخیره می شود و میتوان گ فت که تولید نسخه ارشیو به
نوعی همان ایجاد نقطه وارسی اما در حد گسترده است.
نک ته:
در اثناء تولید نسخه پشتیبان ،هیچ تراکنشی نباید فعال باشد .پریود تولید نسخه پشتیبان ممکن است هفتگی ،روزانه و گاه حتی ساعتی باشد
59
روشهای ترمیم خرابی سیستم
•
•
الگوریتم های ترمیم اساسا بر دو عمل UNDO,REDOمبتنی هستند .
دراساس چهار الگوریتم برای ترمیم داریم:
•
•
•
•
)1-UNDO/REDO (U-R
)2-NOUNDO/REDO (NU-R
)3-UNDO/NOREDO (U-NR
)4-NOUNDO/NOREDO (NU-NR
60
کارای ی این چهار الگوریتم یکسان نیست
U-R , NU-Rکارای ی یکسان دارند و بهتراز دو الگوریتم دیگر هستند .
نتایج شبیه سازی الگوریتم ها
تکنیکهای ترمیم در حالت بهنگام سازی با تاخیر
•
در حالت بهنگام سازی با تاخیر ،نتیجه عمل بهنگام سازی داده ،فقط پس از تثبیت شدن تراکنش ،به پایگاه داده ها منتقل می شود .از
این رو در صورت بروز خرابی ،نیازی به عمل UNDOنیست و سیستم فقط باید عمل REDOرا انجام دهد .بنابراین در این حالت،
الگوریتم ترمیم NOUNDO/REDOاست
برای بررسی این الگوریتم دو حالت در نظر می گیریم
• حالت اول :محیط تک کاربری
• حالت دوم :محیط چند کاربری
64
الگوریتم REDOدر محیط تک کاربری
در این حالت ،الگوریتم ترمیم ،ساده است.
سیستم دو لیست کاری را بررسی می کند :
• لیست تراکنشهای ی که بعد از ایجاد نقطه وارسی ،به تثبیت رسیده اند و
• لیست تراکنشهای فعال.
در لیست اخیر ،حداک ثر یک تراکنش وجود دارد.
سپس عمل REDOرا برای تمام تراکنشهای تثبیت شده ،به ترتیبی که درفایل ثبت وارد شده اند ،انجام می دهد
و بعد ازاین کار ،اجرای تراکنشهای فعال را از سر می گیرد.
65
بدیهی است در REDOکردن از پساتصویر استفاده می شود.
چون بهنگام سازی با تاخیر انجام می شود ،تراکنشهای فعال در لحظه بروز نقص ،تاثیری در پایگاه داده ها ندارند و در مرحله ترمیم ،نادیده
گرفته می شوند و همانطور که گ فته شد ،پس از ترمیم اجرای انها از سر گرفته می شود خواه بطور خودکار توسط سیستم و خواه با دخالت
کاربر.
66
•
مثال :4
• T2
)R(B
)W(B
)R(D
T1
)R(A
)R(D
)W(D
)W(D
این دو تراکنش ،بطور سریال (ابتدا T1و سپس ) T2اجرا می شوند ،پس همروندی نداریم.
محتوای فایل ثبت چنین است :
)(T1,BEGIN
)(T1,W,D,20
)(T1,COMMIT
)(T2,BEGIN
)(T2,W,B,10
) (T2,W,D,25خرابی سیستم
عملیات نوشتن از ،REDO ،T1می شود .عملیات تراکنش ،T2نادیده گرفته می شود.
67
•
مثال 5
T2
)R(C
C:=C-100
)W(C
.
.
T1
)R(A
A:=A-50
)W(A
)R(B
B:=B+50
)W(B
فرض :در اغازC=700 ,B=2000 ,A=1000:
تراکنشهای T1و T2بطور سریال اجرا می شوند ابتدا T1و سپس T2
68
محتوای بخشی از فایل ثبت ،می تواند چنین باشد.
><T1,BEGIN
><T1,W,A,950
><T1,W,B,2050
><T1,COMMIT
><T2,BEGIN
><T2,W,C,600
><T2,COMMIT
حال طرز ترمیم را با توجه به لحظه بروز خرابی بررسی می کنیم.
69
خرابی بعد از اجرای دستور است W(B):از تراکنش T1بروز کند .محتوای فایل ثبت چنین است
><T1,BEGIN
><T1,W,A,950
><T1,W,B,2050
سیستم اقدامی نمی کند ،زیرا هنوز به رکورد > <T1,COMMITبرخورد نکرده است.
مقادیر Aو Bدر پایگاه داده ها همان مقادیر اغازین هستند A=1000 :و B=2000
70
خرابی بعد از اجرای دستور ) W(cاز T2بروز کند ،محتوای فایل ثبت چنین است:
><T1,BEGIN
><T1,W,A,950
><T1,W,B,2050
><T1,COMMIT
><T2,BEGIN
><T2,W,C,600
سیستم عملیات تراکنش T1را REDOمی کند ،زیرا در بررسی فایل ثبت مشخص شده
است که T1به تثبیت رسیده است :در پایگاه داده ها داریمB=2050 , A=950 :
71
خرابی پس از تثبیت شدن T2بروز کند .در این حالت عالوه بر رکوردهای قبل ،رکورد
> <T2,COMMITدر فایل ثبت وجود دارد و سیستم عملیات هر دو تراکنش T1و
T2را REDOمی کند و در پایگاه داده ها داریم:
C=600 , B=2050 , A=950
72
الگوریتم REDOدر محیط چند کاربری
در این حالت ،فرایند ترمیم ،بسته به نوع پروتوکل کنترل همروندی ،می تواند پیچیده تر باشد.
در موارد زیادی ،کنترل همروندی و فرایند ترمیم بهم مرتبط اند .هرچه میزان همروندی بیشتری مورد نظر باشد ،فرایند ترمیم زمانگیرتر می شود
با فرض استفاده از پروتوکل دو مرحله ای شدید ،روش ترمیم می تواند چنین باشد:
سیستم با استفاده از دو لیست ،یعنی لیست تراکنشهای تثبیت شده بعد از اخرین نقطه وارسی و لیست تراکنشهای فعال،
و پس از بررسی فایل ثبت ،تمام عملیات نوشتن تراکنشهای تثبیت شده را REDO
میکند و تراکنشهای ی که فعال بوده ولی تثبیت نشده اند ،را نادیده میگیرد تا بعدا اجرای انها از سر گرفته شود.
73
T1
مثال 6
T2
T3
T4
T5
t2
خرابی سیستمی
t1
نقطه وارسی
رفتار مدیر ترمیم با تراکنشها چنین است:
نیازی به REDOکردن T1نیست
عملیات تراکنشهای T2و T3باید REDONEشوند.
تراکنشهای T4و T5نادیده گرفته شوند.
عیب این الگوریتم این است که همروندی تضعیف می شود ،زیرا قفل روی داده ها تا رسیدن تراکنشها به نقطه تثبیت باقی می ماند و
بعالوه نیاز به فضای زیاد برای تامین بافرها است.
مزیت این الگوریتم این است که هرگز عمل UNDOالزم نمی شود.
80
مثال 7
T4
T3
T2
T1
)R(B
)R(A
)R(B
)R(A
)W(B
)W(A
)W(B
)R(D
)R(A
)R(C
)R(D
)W(D
)W(A
)W(C
)W(D
این چهار تراکنش بطور همروند اجرا می شوند.
:محتوای بخش فایل ثبت چنین است
<T1,BEGIN>
<T1,W,D,20>
<T1,COMMIT>
<CHECK POINT>
<T4,BEGIN>
. نیستT1 کردنREDO نیازی به
<T4,W,B,15>
. نادیده گرفته می شوندT3 وT2
<T4,W,A,20>
. شودREDO بایدT4
<T4,COMMIT>
<T2,BEGIN>
<T2,W,B,12>
<T3,BEGIN>
<T3,W,A,30>
<T2,W,D,25>
خرابی در سیستم
تکنیک های ترمیم در حالت بهنگام سازی بالفاصله
در این حالت ،داده بهنگام در امده بالفاصله در پایگاه داده نوشته می شود بی انکه سیستم منتظر بماند تا تراکنش به تثبیت برسد.
قبل از نوشتن داده در پایگاه داده ،باید رکورد عمل بهنگام سازی در فایل ثبت نوشته شود.
مدیر ترمیم ،تراکنش های به ثبت نرسیده را UNDOمیکند.
الگوریتم های ترمیم در حالت بهنگام سازی بالفاصله
UNDO/NOREDO اگر تمام بهنگام سازیهای یک تراکنش قبل از تثبیت ان ،روی دیسک برده شوند ،نیازی به عمل REDOنیست.
UNDO/REDO اگر تراکنش مجار به تثبیت باشد ،پیش از انکه همه تغییرات ان در پایگاه داده ها اعمال شود ،در این صورت الگوریتم
UNDO/REDOرا داریم که پیچیده ترین تکنیک است.
برای شرح این الگوریتم 2حالت را در نظر می گیریم -1 :محیط تک کاربری -2محیط چند کاربری
الگوریتم UNDO/REDOدر محیط تک کاربری
مدیر سیستم از لیست تراکنش های ثبت شده بعد از اخرین نقطه وارسی و تراکنش های فعال استفاده می کند.
تمام عملیات نوشتن تراکنش فعال که در فایل ثبت ،رکورد دارند ،با استفاده از پیش تصویر UNDOمی شوند ،سپس عملیات نوشتن تراکنشهای ثبت
شده با استفاده از پسا تصویر REDOمیشوند.
مثال 8
T2
T1
)R(C
)R(A
C:=C-100
A:=A-50
)W(C
)W(A
)R(B
B:=B+50
)W(B
تراکنش ها به طور سریال انجام می شود (ابتدا T1و سپس )T2
رکوردهای فایل ثبت در صورت اجرای کامل دو تراکنش در مثال 8
><T1,BEGIN
><T1,W,A,1000,950
><T1,W,B,2000,2050
><T1,COMMIT
><T2,W,C,700,600
><T2,COMMIT
لحظه های بروز خرابی مربوط به مثال 8
خرابی بعد از نوشتن رکورد مربوط به ) ، W(Bدرفایل ثبت بروز می کند.
در بررسی فایل ثبت ،رکورد > <T1,BEGINدیده می شود اما رکورد > <T1,COMMITوجود ندارد بنابر این
) UNDO(T1اجرا می شود و در پایگاه داریمB=2000,A=1000 :
خرابی بعد از نوشتن رکورد مربوط به ) ، W(Cدر فایل ثبت بروز می کند.
در این صورت عمل ) REDO(T1و عمل ) UNDO(T2اجرا می شوند .بعد از ترمیم داریمC=700 , B=2050 , A=950 :
خرابی پس از نوشتن رکورد > <T2,COMMITدرفایل ثبت بروز می کند.
در این حالت ) REDO(T1و ) REDO(T2اجرا می شوند و در پایگاه داریمC=600 , B=2050 , A=950 :
الگوریتم UNDO/REDOدر محیط چند کاربری
مدیر سیستم لیستهای UNDOو REDOرا که (در اغاز خالی هستند) ایجاد میکند.
برای این منظور فایل ثبت از اخر تا رسیدن به اولین رکورد نقطه وارسی ،پیموده می شود.
در صورت برخورد با رکورد > <Ti,COMMITتراکنش Tiبه لیست REDOاضافه می شود.
درصورت برخورد به رکورد > ، <Ti,BEGINاگر Tiدر لیست REDOنباشد ،به لیست UNDOاضافه میشود.
مراحل بعد ازاماده سازی لیست های UNDOوREDO
مدیر سیستم به صورت زیر عمل می کند:
-1فایل ثبت به طور پسرو پیموده می شود و هر تراکنش Tiاز لیست UNDOرا که رکورد نوشتن در فایل ثبت داشته باشد UNDO،میکند.
-2یافتن اخرین رکورد> <CHECK POINTدر فایل ثبت.
-3فایل ثبت ،از نقطه وارسی به سمت جلو پیموده میشود و هر تراکنش Tiاز لیست ، REDOکه رکورد نوشتن در فایل ثبت داشته باشد،
REDOمیشود.
عملیات UNDOباید قبل از عملیات REDOانجام شود.
مثال 9
فرض کنیم در فایل ثبت ،برای تراکنشهای Tiو ،Tjرکوردهای زیر را داریم.
><Ti,W,10,20
><Tj,W,D,10,30
اگر قرار باشد Tiرا UNDOکنیم ،پس از این کار D=10میشود.
اگر قرار باشد Tjرا REDOکنیم و این کار قبل از UNDOانجام شود D=30و سپس D=10میشود.
در حالیکه مقدار درست Dبرابر 30است ،زیرا فرض کردیم که Tjباید REDOشود و پساتصویر مربوطه 30است.
مثال 10
در نمودار زیر ،اجرای همروند پنج تراکنش دیده می شود.
در ترمیم دخالت داده نمیشود.
در ترمیم دخالت داده نمیشود.
T1
T2
T3
RED
O
T4
RED
O
T5
UNDO
لحظه خرابی
نقطه وارسی
UNDO
الگوریتم UNDO/NOREDO
در حالت بهنگام سازی بالفاصله ،گاه ممکن است نیاز به عملیات REDOنباشد.
این وضع وقتی پیش می اید که در فاصله بین لحظه نقطه وارسی و لحظه بروز خرابی ،هیچ تراکنش تثبیت شده ای وجود نداشته باشد ،یعنی لیست
REDOخالی باشد.
نمودار وضعیت الگوریتم UNDO/NOREDO
در ترمیم دخالت داده نمیشود.
T1
T2
T3
لحظه خرابی
نقطه وارسی
UNDO
UNDO
الگوریتم NO UNDO/NO REDO
به ندرت کاربرد دارد .چرا که باید
• نتایج تمام تمام تراکنش های تثبیت شده قبل از اخرین نقطه وارسی به پایگاه منتقل شود و
• برای تراکنش های فعال بین این نقطه و لحظه بروز خرابی ،عمل نوشتن بالفاصله انجام نشده باشد
•
برای رفع مشکل استفاده از تکنیک ایجاد صفحه سایه بدون نیاز به UNDO , REDOبا صفحه بندی پایگاه داده
89
90
تکنیک ایجاد صفحه سایه
•
•
صفحه سایه پیش تصویری
صفحه سایه پسا تصویری ( رایجتر)
تکنیک صفحه سایه پسا تصویری
•
•
•
•
•
تقسیم پایگاه داده به nصفحه
ایجاد یک راهنما برای مدیریت صفحات با nمدخل ( مدخل iام به صفحه iام پایگاه روی دیسک اشاره دارد)
در زمان شروع اجرای تراکنش ،مدخل های راهنمای جاری که به اخرین صفحات یا صفحات جاری اشاره دارد در راهنمای دیگری به نام راهنمای
سایه کپ ی می شود.
نگهداری راهنمای سایه روی دیسک
عدم تغییر راهنمای سایه در حین اجرای تراکنش
در زمان انجام عمل نوشتن:
• نسخه جدیدی از صفحه تغییر یافته ایجاد
• عدم جایگزینی با نسخه قبلی
• ثبت نسخه جدید در مکانی دیگر ( بهنگام سازی برون جا)
• اصالح مدخل راهنمای جاری و اشاره ان به صفحه جدید
• عدم تغییر مدخل راهنمای سایه
به نوعی تولید فایل ثبت منطقی
•برای هر صفحه بهنگام شده دو صفحه موجود است
•فایل ثبت جدای از پایگاه نیست
•فایل ثبت منطقی
در اثر بروز خرابی در حین اجرا
• صفحه تغییر یافته ازاد
•اصالح مدخل اشاره کننده به ان
طریقه ترمیم:
•به کمک وضعیت راهنمای سایه
در صورت تثبت تراکنش:
•ثبت راهنمای جاری
•تبدیل راهنمای جاری نوشته شده به راهنمای سایه جدید
شرط موفقیت روش:
•یافتن راهنمای سایه پس از بروز خرابی
برای تثبیت یک تراکنش:
• انتقال تمام صفحات تغییر یافته از بافر به روی دیسک
• نوشتن راهنمای جاری روی دیسک( نه در جای راهنمای سایه)
• نوشتن ادرس راهنمای جاری در مکانی که ادرس راهنمای سایه است ( تبدیل راهنمای جاری به راهنمای سایه)
مزیت روش:
• عدم نیاز به عمل redo , undo
• در حالت تک کاربری عدم نیاز به فایل ثبت
معایب روش:
• کاهش لوکالیتی داده ها ( ثبت صفحه بهنگام شده و صفحه سایه در یک استوانه)
• ایجاد سربار به دلیل تولید راهنمای سایه جدید
• مشکل زباله روبی
• تضعیف همروندی
• مصرف حافظه زیاد
مثال
تکنیک صفحه سایه پیش تصویری
• نوشتن صفحه بهنگام شده در مکان قبلی
• نوشتن نسخه قبلی در مکانی دیگر معموال انتهای فایل ( نوشتن پیش تصویر در مکانی دیگر)
• تنظیم مدخل مربوطه در راهنمای
در صورت بروز خرابی
• نیاز به عمل undoاست ولی به عمل redoنیازی نیست
ترميم خرابي رسانه اي:
روشهاي ترميم كه تاكنون ديده شده ،براي ترميم در حالت خرابي سيستمي بكار مي روند
مدير ترميم بايد بتواند خرابي هاي گسترده تر بويژه خرابي رسانه اي را نيز ترميم كند.
گام هاي انجام شده در اين ترميم:
مدير ترميم با استفاده از اخرين نسخه پشتيبان -كه فرض مي شود در پ ي بروزخرابي ،اسيب نديده است -و انجام كارهاي زير پايگاه داده را ترميم مي كند:
-1بار كردن دوباره ي پايگاه داده ها از روي نسخه پشتيبان
-2انجام عمليات ( Redoبا استفاده از فايل ثبت log fileو ارشيو )
براي تراكنش هاي ي كه بعد توليد اخرين نسخه پشتيبان و قبل از بروز خرابي به تثبيت رسيده اند نيازي به عمليات undoنيست.
ترميم در سيستم چند پايگاهي:
دربحث هاي گذشته فرض بر اين بود كه تراكنش فقط به داده هاي ذخيره شده در يك پايگاه داده نياز دارد
اما گاه ممكن است يك تراكنش نياز بدستيابي به داده هاي چند پايگاه داشته باشد.
بعنوان مثال در معماري پايگاه داده ي توزيع شده وضع چنين است.
در سيستم چند پايگاهي ممكن است هر پايگاه داده تحت مديريت يك سيستم جداگانه باشد و حتي اين سيستم هاي مديريت پايگاه داده ها ناهمگن
باشد.
ترميم در سيستم چند پايگاهي
در چنين محيطي ،براي اينكه تراكنشي با موفقيت به پايان برسد بايد در تمام سيستم ها به ثبت برسد؛ معنا ندارد كه يك تراكنش در يك مانه
()سايت به نقطه تثبيت برسد اما در مانه ديگر طرد شود.
براي تامين خاصيت تجزيه ناپذيري تراكنش چند پايگاهي الزم است كه يك مكانيسم دو سطحي ترميم وجود داشته باشد
الزمه اين كار وجود يك مدير ترميم سراسري يا هماهنگ كننده است كه اطالعات الزم را در اختيار داشته باشد
پروتوکل تثبیت دو مرحله ای
براي ترميم در سيستم چند پايگاهي ( بويژه در معماري توزيع شده ) از پروتكل تثبيت دو مرحله استفاده مي شود
پروتكل :2PC
اين پروتكل دردو مرحله به شرح زير اجرا انجام مي شود:
مرحله اول :راي دادن
هماهنگ كننده با دريافت درخواست commitبه تمام مديران تراكنش ها در سيستم هاي پايگاهي زيربط دستور مي دهد تا اماده
تثبيت باشند .
مدیران محلی
هماهنگ کننده
COMMIT
یا
ROLLBACK
مدیران محلی
هماهنگ کننده
دستور
COMMIT
ROLLBACK
رای مثبت
منفی
هماهنگ کننده
اماده
هر سيستم پايگاهي ،با دريافت اين پيام تمام ركورد هاي مربوط به فايل ثبت و ساير اطالعات الزم براي ترميم را روي ديسك مي نويسد (نوشتن
اجباري)
و سپس پيام ”اماده براي تثبيت “ را به هماهنگ كننده مي فرستد (راي مثبت )
اگر عمل نوشتن اجباري با موفقيت انجام نشود و يا تراكنش محلي به هر دليلي تثبيت نشود و نتواند ”پيام تثبيت ناممكن “به هماهنگ كننده مي
دهد (راي منفي)
اگر هماهنگ كننده در يك مدت معين پاسخي از يك سيستم دريافت نكند فرض مي كند كه ”پيام تثبيت ناممكن ”است
مرحله دوم :تصميم گيري
هماهنگ كننده با دريافت پاسخ از مديران محلي ،يك ركورد درفايل ثبت خود مي نويسد حاوي تصميمي است كه در مورد تراكنش گرفته
شده است.
اگر پاسخ همه مديران محلي ”مثبت “okباشد تصميم هماهنگ كننده commitاست و دستور commitرا به تمام مديران
محلي مي فرستد چون تمام اقدامات تراكنش در هر يك از مانه ها و نيز اطالعات الزم ديگر در فايل ثبت هر يك از مديران محلي ،ذخيره
شده است در صورت بروزنقص امكان ترميم وجود دارد.
هر سيستم محلي با نوشتن ركورد commitدر فايل ثبت خود در صورت لزوم پايگاه تحت مديريت خود را بهنگام در مي اورد.
اگر حداقل يك مدير محلي پاسخ منفي ” “ not OKبه هماهنگ كننده بدهد هماهنگ كننده پيام Rollbackرا به مديران محلي مي فرستد و
از انها مي خواهد كه عمل undoرا در پايگاه تحت مديريت خود انجام دهند.
واضح است كه با اين پروتكل ،يا تراكنش چند پايگاهي در تمام سيستم ها به نقطه تثبيت مي رسد و يا در هيچ كدام به اين نقطه نمي رسد.