Write-Ahead Logging یا WAL روشی برای ثبت تغییرات موردنیاز بازیابی پیش از نوشتن نسخه نهایی آنها در فایلهای اصلی داده است. این سازوکار نقش مهمی در Crash Recovery و ماندگاری تراکنش دارد.
نحوه استفاده در عمل
اگر سرور بعد از ثبت Commit در WAL ولی قبل از نوشتن صفحات داده از کار بیفتد، پایگاه داده میتواند هنگام راهاندازی تغییرات لازم را دوباره اعمال کند.
WAL جایگزین Backup نیست. رشد لاگ، تنظیم Checkpoint و نگهداری فایلهای لازم برای Replication باید مدیریت شوند.
چرا قبل از داده لاگ مینویسیم؟
در WAL، تغییرات لازم برای بازیابی ابتدا در لاگ ثبت میشوند تا پس از Crash بتوان وضعیت Commitشده را بازسازی کرد. WAL در برخی دیتابیسها برای Replication نیز استفاده میشود. این سازوکار با لاگ معمولی اپلیکیشن متفاوت است.