تبلیغات
NiceSoft - معماری SQL Server قسمت پنجم - ساختار Transaction Log

معماری SQL Server قسمت پنجم - ساختار Transaction Log

تاریخ:یکشنبه 23 آبان 1389-07:08 ق.ظ

معماری فایلهای گزارش تراکنش

 

هر بانک اطلاعاتی SQL Server دارای حداقل یک فایل گزارش تراکنش جهت نگهداری تمام تغییرات داده ای ایجاد شده توسط تراکنشها میباشد. بدین وسیله SQL Server  میتواند عملیات زیر را انجام دهد.

  • ترمیم تراکنشهای مجزاء : اگر در کاربرد یک جمله بازگشت عملیات (ROLLBAK) اجرا شود و یا SQL Server با خطای قطع ارتباط کاربر در هنگام اجرای یک تراکنش برخورد کند . از رکوردهای ذخیره شده در فایل گزارش تراکنش عملیات داده‌ای انجام شده بر روی بانک اطلاعاتی جهت ترمیم و بازگشت داده ها به قبل از تراکنش ناقص استفاده می‌گردد.

  • ترمیم تمام تراکنشهای ناقص هنگام شروع SQL Server : اگر اجرای SQL Server به هر علتی با مشکل مواجه شود ، ممکن است بعضی از داده‌های درون حافظه بر روی فایل فیزیکی بانک اطلاعاتی نوشته نشوند. و بدین ترتیب بعضی از تراکنشها بصورت کامل انجام نگیرند. بنابراین هنگامیکه هر نسخه از SQL Server اجرا میشود ، عمل ترمیم را برای تمام بانکهای اطلاعاتی انجام می‌دهد. هر تغییراتی که در حافظه بوده و در فایلهای اصلی نوشته نشده‌اند بطور کامل نوشته می‌شوند(rolled forward)  . و تمام تراکنشهای ناقص جهت حفظ جامعیت بانک اطلاعاتی به حالت قبل از تراکنش بازگردانده می شوند(rolled back) .

  • ترمیم بانک اطلاعاتی بازیابی شده تا نقطه خرابی بانک اطلاعاتی (rolling forward) : درصورتیکه بانک اطلاعاتی به هر علتی از بین برود. این امکان وجود دارد که بانک اطلاعاتی تا نقطه خرابی احیاء گردد. ابتدا باید پشتیبان گرفته شده از    بانك اطلاعاتی بازیابی شده و سپس با استفاده از فایل گزارش تراكنش عملیات انجام شده بر روی داده‌ها تا نقطه خرابی ترمیم گردند. هنگام بازیابی یك فایل گزارش تراکنش تمام تغییرات ذخیره شده در فایل گزارش تراکنش بر روی         بانك اطلاعاتی اعمال می گردند (rolling forward) . سپس SQL Server تمام تراکنشهای را که تا آن نقطه کامل نشده‌اند را به حالت قبل بر می گرداند (rolling back) .

فایلهای گزارش تراکنش دارای مشخصات زیر میباشند :

  • فایلهای گزارش تراکنش بصورت جداول در بانک اطلاعاتی نگهداری نمیشوند بلکه بصورت یک یا چند فایل جدا نگهداری میشوند. حافظه نگهداری اطلاعات تراکنشها از حافظه نگهداری صفحات داده‌ای جدا بوده و بصورت جداگانه نیز توسط   مدیر بانك اطلاعاتی مدیریت می‌گردد.
  • قالب نگهداری اطلاعات در فایلهای تراکنش مانند قالب صفحات داده‌ای نمی باشند.
  • تراکنشها می توانند در چندین فایل مجزا پیاده سازی شوند و این فایلها میتوانند بصورت گسترش یابنده تعریف گردند و این امر موجب اتلاف حداقل حافظه و نیز کاهش سربار مدیریت بانک اطلاعاتی می‌گردد.
  • مکانیزم قطع قسمتهای بلااستفاده فایل تراکنشها بسیار سریع بوده و حداقل تاثیر را بر روی ماهیت فایل گزارش تراکنشها دارد.

 

پیش نویس گزارش تراکنشها[1]

 

SQL Server مانند بسیاری از بانکهای رابطه‌ای دیگر، از پیش نویس تراکنشها استفاده میکند. پیش نویس تراکنشها این اطمینان را بوجود می‌آورد که هیچ تغییرات داده‌ای بر روی دیسک نوشته نمی شوند مگر آنکه قبل از آن ، رکورد سابقه آن در فایل گزارش تراکنش ثبت شده باشد.

SQL Server از یک حافظه سریع میانی[2] برای خواندن صفحات داده‌ای هنگام تقاضای دسترسی به داده‌ها استفاده می‌كند. تغییرات داده‌ای مستقیما" بر روی دیسک سخت نوشته نمی شوند، بلکه این تغییرات بر روی یک کپی از داده‌های موجود در حافظه میانی اعمال می‌گردند. تغییرات بر روی دیسک سخت نوشته نمی‌شوند مگر اینكه بانك اطلاعاتی به یک نقطه کنترل برسد و یا اطلاعات دورن حافظه جهت نگهداری یک صفحه جدید درون فضای حافظه ،  بر روی دیسک سخت منتقل گردند. نوشتن اطلاعات از حافظه به روی دیسک سخت را تخلیه صفحات گویند و صفحه داده‌یی را كه درون حافظه تغییر یافته ولی هنوز به دیسک سخت منتقل نشده را اصطلاحا" صفحه کثیف[3] می گویند. هنگامیکه یك صفحه داده‌ای در حافظه میانی تغییر می یابد یک رکورد متناظر با آن تغییر، در حافظه میانی تراکنشها ایجاد می‌گردد. این رکورد تراکنش باید قبل از تخلیه صفحه   داده‌ای متناظر تغییر یافته بر روی دیسک ذخیره گردد.در صورتیکه صفحه داده‌ای تغییر یافته قبل از رکورد متناظر خود در حافظه میانی تراکنش بر روی دیسک سخت نوشته شود، تغییری بر روی داده‌های بانک اطلاعاتی اعمال گردیده که در صورت خرابی SQL Server قبل از نوشتن رکورد تراکنش بر روی دیسک قابل بازگشت نیست.SQL Server  دارای مکانیزمی است که همیشه از تخلیه صفحات داده‌ای تغییر یافته قبل از رکورد متناظر آنها در حافظه میانی تراکنشها جلوگیری می‌کند. و به خاطر اینکه همیشه رکوردهای متناظر تراکنش قبل ار صفحات داده‌ای تغییر یافته بر روی دیسک سخت نوشته می‌شوند به فایل گزارش تراکنشها،  فایل گزارش تراکنش پیش نویس می‌گویند.

 

معماری منطقی فایلهای گزارش تراکنش

 

فایلهای گزارش تراکنش SQL Server بصورت یکسری از رکوردهای رشته‌ای تراکنش پشت سرهم ذخیره میشوند. هر رکورد تراکنش توسط یک شماره ترتیب تراکنش([4]LSN) مشخص می‌گردد. هر رکورد تراکنش جدید در خاتمه آخرین رکورد تراکنش و با یک شماره LSN   بالاتر از آن ذخیره می‌گردد.

 

انواع عملیاتی که در فایل گزارش تراکنش ذخیره می‌شوند عبارتند از :

·         شروع و خاتمه هر تراکنش.

·     هر نوع تغییر داده‌ای (insert, update, or delete)  ، این تغییرات حتی شامل تغییرات در جداول سیستمی توسط روالهای ذخیره شده سیستمی و یا دستورات تعریف داده‌ها (DDL)  می‌باشند.

·         هرگونه تخصیص یا آزاد سازی حوضه‌ها.

·         ایجاد و یا حذف جداول و شاخص‌ها.

 

نقاط کنترل[5] و قسمت فعال فایل گزارش تراکنش

 

نقاط کنترل قسمتی از فایل گزارش تراکنش را که در طول عمل ترمیم کامل بانک اطلاعاتی[6] باید مورد پردازش قرار بگیرند را به حداقل میرساند.در طول یک ترمیم کامل بانک اطلاعاتی دو نوع عملیات باید انجام بگیرد.

·     تغییرات داده‌ای (مشخص شده با رکوردهای درون فایل گزارش تراکنش) که در دیسک ذخیره نشده اند ، باید ذخیره گردند (rolling forward).

·     تمام تغییرات تراکنشهای ناقص (تراکنشهای که کامل نشده اند و رکورد COMMIT و یا ROLLBACK در فایل گزارش تراکنش برای آنها ثبت نشده است) باید به حالت قبل از انجام دستورات تراکنش بازگردند.

نقاط کنترل با تخلیه صفحات داده‌ای و رکوردهای تراکنش از درون حافظه سریع میانی بر روی دیسک سخت تعداد تغییراتی را که باید جهت ترمیم بانک اطلاعاتی صورت پذیرند را به حداقل می‌رسانند.

با ایجاد یک نقطه کنترل در SQL Server پردازشهای زیر در بانک اطلاعاتی جاری انجام می‌گیرد :

·         یک رکورد بعنوان شروع نقطه کنترل در فایل گزارش تراکنش ذخیره می‌گردد.

·     اطلاعات نقاط کنترل در یک زنجیره از رکوردهای نقاط کنترل در فایل گزارش تراکنش ذخیره شده و شماره شناسای رکورد(LSN) شروع این زنجیره در صفحه راه اندازی بانک اطلاعاتی ذخیره می‌شود.

·     یک قطعه از اطلاعات ذخیره شده در رکورد نقطه کنترل شماره شناسائی (LSN) صفحه‌ای است که بازگشت عملیات تغییراتاطلاعات (rollback) ، بصورت صحیح از آن امکان پذیر است. این شماره صفحه ، شماره     صفحه‌ی حداقل ترمیم (MinLSN) نامیده میشود.

·         نقاط کنترل لیستی از تمام تراکنشهای فعال که هنوز به دیسک منتقل نشده اند را در خود ذخیره می‌کنند.

·     درصورتیکه از مدل ترمیم ساده بانک اطلاعاتی استفاده گردد، تمام رکوردهای تراکنش درون فایل گزارش تراکنش قبل از جدیدترین MinLSN ، حذف می‌شوند.

·         تمام صفحات داده‌ای و رکوردهای تراکنش درون حافظه های میانی به دیسک منتقل می‌شوند.

·         یک رکورد بعنوان پایان نقطه کنترل در فایل گزارش تراکنش ثبت می‌شود.

 

رکورد MinLSN تا آخرین رکورد نوشته شده در فایل گزارش تراکنش را قسمت فعال فایل گزارش تراکنش می نامند و این همان قسمتی است که برای ترمیم کامل بانک اطلاعاتی لازم است. هیچ محدوده ای از قسمت فعال فایل گزارش تراکنش قابل حذف[7] نبوده و تنها قسمتهای قبل از رکورد MinLSN میتوانند حذف گردند. در شکل زیر یک مثال ساده از یک فایل گزارش تراکنش با دو تراکنش فعال دیده می‌شود. رکوردهای نقاط کنترل جهت ساده‌تر شدن بصورت یک رکورد نمایش داده شده اند.

 

 

رکورد با شماره شناسائی 148 آخرین رکورد در فایل گزارش تراکنش می‌باشد. هنگام ثبت نقطه‌ی کنترل با شماره شناسائی 147، تراکنش یک پایان یافته و تنها تراکنش دو فعال می‌باشد. بنابراین اولین رکورد ذخیره شده برای تراکنش دو ، رکورد با شماره شناسائی 142 بوده که در اصل همان رکورد MinLSN می‌باشد.

 

نقاط کنترل در مواقع زیر ثبت می‌گردند :

·         هنگام اجرای یک جمله CHECKPOINT و با اجرای این جمله برای بانک اطلاعاتی جاری یک نقطه کنترل ثبت می‌گردد.

·         هنگام اجرای دستور ALTER DATABASE جهت تغییر مشخصات یک بانک اطلاعاتی.

·     هنگام توقف یک نمونه از SQL Server  با استفاده از جمله SHUTDOWN   و یا با توقف سرویس SQLServer توسط مدیر سرویس SQL Server .در این صورت برای تمام بانکهای اطلاعاتی آن نمونه از SQL Server ، رکورد نقطه کنترل ثبت می‌گردد.

·     در یک نمونه از SQL Server  بصورت دوره‌ای جهت کاهش زمان ترمیم بانکهای اطلاعاتی برای هر بانک اطلاعاتی بصورت خودکار رکورد نقطه کنترل ثبت می‌شود.


ادامه دارد قسمت ششم


[1] Write-Ahead Transaction Log

[2] buffer cache

[3] dirty page

[4] log sequence number

[5] Checkpoints

[6] full recovery

[7] truncate

 



Cialis 20 mg
جمعه 16 آذر 1397 07:41 ق.ظ

Many thanks! A good amount of information.

sialis cialis super acti order cialis from india tesco price cialis cialis dosage recommendations miglior cialis generico dose size of cialis 200 cialis coupon cialis pas cher paris order cialis from india
buy cialis online cheap
پنجشنبه 15 آذر 1397 12:32 ب.ظ

Many thanks. Valuable information.
cialis official site acquistare cialis internet legalidad de comprar cialis cialis for bph canadian discount cialis purchase once a day cialis viagra cialis levitra cialis online cialis generic availability cialis 10 doctissimo
Buy generic cialis
چهارشنبه 14 آذر 1397 04:25 ب.ظ

Valuable advice. Thanks a lot.
cialis generico postepay we like it cialis price cialis for sale in europa cialis dosage recommendations cost of cialis cvs cialis uk next day cialis generico in farmacia cialis with 2 days delivery cialis generico postepay price cialis per pill
buy cheap cialis in canada
چهارشنبه 14 آذر 1397 04:02 ق.ظ

Nicely put. With thanks!
usa cialis online order generic cialis online cialis 100 mg 30 tablet generic cialis at walmart cialis sale online cialis generic availability deutschland cialis online price cialis best buy original cialis cialis savings card
buy cialis pills online
سه شنبه 13 آذر 1397 04:55 ب.ظ

Thanks a lot, I value this.
cialis name brand cheap only here cialis pills cialis dosage recommendations cialis kaufen low dose cialis blood pressure cialis 30 day trial coupon cialis 5 mg para diabeticos wow cialis 20 cialis generique 5 mg precios cialis peru
Generic cialis
دوشنبه 12 آذر 1397 05:31 ب.ظ

Thanks, Numerous advice.

cialis 20mg only now cialis for sale in us overnight cialis tadalafil cialis prezzo in linea basso cialis italia gratis cheap cialis purchase once a day cialis buy cialis cheap 10 mg no prescription cialis cheap buying cialis on internet
Buy cialis online
دوشنبه 12 آذر 1397 05:17 ق.ظ

Nicely put, Cheers.
cialis free trial generic cialis tadalafil buy cheap cialis in uk cialis 100 mg 30 tablet brand cialis generic preis cialis 20mg schweiz viagra vs cialis vs levitra cialis tablets cialis online nederland cialis lilly tadalafi
buy cialis pills
یکشنبه 11 آذر 1397 04:56 ب.ظ

Fantastic write ups. Cheers!
cialis australian price cialis for sale south africa buy cialis online cialis kaufen when will generic cialis be available no prescription cialis cheap cialis 200 dollar savings card canada discount drugs cialis cialis 5 mg effetti collateral cialis pills boards
Cialis 20 mg
یکشنبه 11 آذر 1397 04:52 ق.ظ

Amazing quite a lot of helpful facts!
cialis generico postepay we recommend cialis info cialis per paypa bulk cialis cialis australian price cialis purchasing cialis generico lilly cialis prezzo al pubblico how much does a cialis cost overnight cialis tadalafil
Buy cialis online
شنبه 10 آذر 1397 05:30 ب.ظ

With thanks. Numerous knowledge.

cialis pas cher paris cialis diario compra cialis pas cher paris cialis generico milano generic cialis pro cialis kaufen wo india cialis 100mg cost cialis dosage cialis wir preise bulk cialis
Buy generic cialis
شنبه 10 آذر 1397 04:29 ق.ظ

Amazing lots of very good info.
only here cialis pills viagra or cialis cialis et insomni viagra cialis levitra cialis farmacias guadalajara cialis 20 mg cut in half canadian drugs generic cialis cialis online deutschland generico cialis mexico generic cialis pill online
cialis
جمعه 9 آذر 1397 05:14 ب.ظ

Nicely put, Kudos!
generic cialis at the pharmacy buying cialis on internet buy brand cialis cheap online prescriptions cialis weblink price cialis india cialis 100mg cost acheter cialis kamagra cialis online deutschland cialis without a doctor's prescription cialis 5 mg scheda tecnica
cialis
جمعه 9 آذر 1397 05:29 ق.ظ

You expressed that fantastically!
click here take cialis cialis australian price cialis italia gratis click here cialis daily uk buy cialis online legal cialis australia org we like it cialis soft gel we like it safe cheap cialis cialis mit grapefruitsaft tesco price cialis
buy cialis online without a prescription
پنجشنبه 8 آذر 1397 06:08 ب.ظ

You have made your point extremely effectively.!
pastillas cialis y alcoho we choice cialis pfizer india cialis 30 day sample cialis cost cialis generic cialis kamagra levitra price cialis per pill tadalafil generic how to purchase cialis on line sialis
Cialis online
پنجشنبه 8 آذر 1397 06:18 ق.ظ

Nicely put. Thank you.
cialis purchasing free cialis 5 mg cialis pharmacie en ligne viagra cialis levitra cialis australian price generic cialis in vietnam buy cialis sample pack where cheapest cialis comprar cialis navarr purchasing cialis on the internet
buy cialis with no prescription
چهارشنبه 7 آذر 1397 05:16 ب.ظ

Amazing lots of fantastic material!
generic cialis at the pharmacy prezzo cialis a buon mercato cialis cost cialis cuantos mg hay we recommend cheapest cialis online prescriptions cialis cialis dosage amounts cheap cialis cialis rezeptfrei sterreich trusted tabled cialis softabs
buy tadalafil no prescription
چهارشنبه 7 آذر 1397 05:43 ق.ظ

Truly quite a lot of useful knowledge.
buy cialis sample pack cialis 5 mg scheda tecnica side effects for cialis cialis 100mg suppliers ou acheter du cialis pas cher cialis per paypa we like it cialis price cialis free trial cialis alternative cialis cuantos mg hay
buy levitra generic
جمعه 20 مهر 1397 12:15 ب.ظ

You have made your position quite effectively!.
generic levitra buy levitra buy levitra 10mg buy levitra 20 mg buy levitra online buy levitra levitra prices levitra 20mg levitra 20 mg bayer prezzo buy generic levitra
buy cheap cialis in canada
سه شنبه 10 مهر 1397 08:51 ب.ظ

Nicely voiced indeed! .
generic cialis 20mg tablets cialis flussig rx cialis para comprar cialis flussig we choice cialis uk cialis patentablauf in deutschland buy original cialis cialis prezzo di mercato cialis alternative we recommend cialis info
buy tadalafil pills
یکشنبه 8 مهر 1397 09:08 ب.ظ

You actually explained that adequately!
cialis generique 5 mg wow cialis tadalafil 100mg cialis online nederland click now buy cialis brand generic cialis in vietnam cialis from canada cialis para que sirve cialis soft tabs for sale cialis pills cost of cialis per pill
canada drugs online
یکشنبه 1 مهر 1397 02:24 ق.ظ

You suggested this very well.
best canadian pharmacy drugstore online canadian pharmaceuticals nafta canadian medications, liraglutide northwestpharmacy canadian pharmaceuticals online canadian medications 247 canadian pharmacy no prescription legitimate canadian mail order pharmacies canada medication pharmacy
http://viagraessale.com/
سه شنبه 27 شهریور 1397 11:31 ب.ظ

Amazing knowledge. Kudos.
canadian cialis cialis professional from usa safe site to buy cialis online cialis kaufen bankberweisung try it no rx cialis canadian discount cialis cialis with 2 days delivery side effects of cialis try it no rx cialis cialis manufacturer coupon
K SA
جمعه 16 شهریور 1397 11:13 ب.ظ
I used tⲟ be suggested this web site byy mеans of mу cousin. I am not
positive whetһer or not thiѕ ρut up іs wrіtten bʏ ᴡay ᧐f him aas noƅody elsе understand sucһ paгticular approхimately my trouble.You
are wonderful! Thаnks!
http://cialisbuys.com/
پنجشنبه 15 شهریور 1397 03:19 ب.ظ

You reported that exceptionally well.
tesco price cialis buy cialis online legal female cialis no prescription only here cialis pills cialis prezzo in linea basso only here cialis pills cialis uk acquistare cialis internet cialis tablets cialis professional from usa
canadianpharmacytousa.com
چهارشنبه 14 شهریور 1397 06:13 ق.ظ

You actually stated it effectively.
drugs for sale online canadian pharmacies online prescriptions pharmacy canada online prescriptions pharmacy canada online prescriptions canadian online pharmacy Canadian Pharmacy USA canada rx canadian pharmacy viagra brand northwest pharmacies mail order canadian pharmacy meds
buycialisonla.com
دوشنبه 12 شهریور 1397 08:24 ق.ظ

Truly many of very good information.
the best site cialis tablets free generic cialis cialis en 24 hora cialis qualitat only best offers 100mg cialis legalidad de comprar cialis cialis generika cialis bula cialis venta a domicilio cialis 5 mg scheda tecnica
http://viagraessale.com/
یکشنبه 11 شهریور 1397 05:15 ب.ظ

Cheers, I like this!
when can i take another cialis cialis 20 mg effectiveness we like it cialis price cost of cialis per pill cialis online holland cialis 20mg we recommend cialis info cialis online napol only best offers 100mg cialis achat cialis en europe
Buy viagra
سه شنبه 23 مرداد 1397 06:09 ق.ظ

Incredible plenty of great data!
where to buy viagra with prescription buy viagra online no rx cheap viagra online usa where can i buy viagra over the counter viagra prices uk buy viagra with prescription online buy viagra thailand how can i buy viagra online pharmacy buy viagra online australia
Cialis online
دوشنبه 7 خرداد 1397 09:09 ق.ظ

Nicely put, Thanks!
low cost cialis 20mg cialis pills cialis coupons cialis super acti cialis 5 mg buy cialis for sale ou acheter du cialis pas cher cialis rckenschmerzen cialis 5 mg para diabeticos cialis in sconto
chocolate
جمعه 14 اردیبهشت 1397 04:01 ب.ظ
Great post.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


نمایش نظرات 1 تا 30