برنامه نویسی

مروری بر Write Ahead Logging – WAL در PostgreSQL

حتی زمانی که یک نقص سیستم رخ می دهد، یک سیستم مدیریت پایگاه داده لازم است که هیچ داده ای را از دست ندهد، زیرا بسیار مهم است و از این رو گزارش های تراکنش بخش بسیار ضروری هر سیستم مدیریت پایگاه داده هستند.

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

در دنیای علوم کامپیوتر، وال مخفف است پیش ثبت نام را بنویسید که پروتکلی برای نوشتن تغییرات و اقدامات انجام شده در پایگاه داده است، هرچند در PostgreSQL، این به عنوان شناخته شده است گزارش پیش رو بنویسید. در این بررسی اجمالی، نگاهی به زیربخش های زیر خواهیم داشت:

– ساختار منطقی و فیزیکی WAL

ساختار منطقی و فیزیکی وال به گونه ای است که اگر از عملیات درج مرسوم و تکنیک های بازیابی پایگاه داده در سایر پایگاه های داده و همچنین PostgreSQL پیروی کند.
PostgreSQL تمام داده ها را به عنوان اصلاحات در یک ذخیره سازی دائمی می نویسد تا برای خرابی آماده شود و این داده های تاریخی به نام شناخته می شود XLOG سوابق یا داده های WAL.

– طرح داخلی WAL

از نظر منطقی، PostgreSQL می نویسد *XLOG * ثبت در یک گزارش تراکنش که یک گزارش مجازی است که از یک فایل طولانی 8 بایتی تشکیل شده است. یک بخش WAL به طور پیش فرض یک فایل 16 مگابایتی است و به صورت داخلی به صفحات 8192 بایتی (8 کیلوبایت) تقسیم می شود.

– نوشتن داده های WAL

حال، با صدور بیانیه زیر به درک نحوه نوشتن فایل های XLOG بروید:
testdb=# INSERT INTO tbl VALUES ('A');

با فراخوانی عبارت فوق، تابع داخلی exec_simple_query() فراخوانی می شود. این تابع همه فایل‌های XLOG را در بخش WAL از بافر WAL می‌نویسد و آن‌ها را شستشو می‌دهد.
فرآیند نوشتن WAL

عملیات نوشتن معمولا با استفاده از DML (زبان دستکاری داده ها) اما حتی عملیات های غیر DML نیز قادر به انجام عملیات نوشتن در PostgreSQL هستند. WAL writer به عنوان یک فرآیند پس زمینه برای بررسی دوره ای بافر WAL کار می کند و تمام رکوردهای XLOG نانوشته را در بخش های حاوی WAL می نویسد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا