PG_WALDUMP(1) PostgreSQL 18.6 Documentation PG_WALDUMP(1)

pg_waldump - نمایش بازنمایی خوانا برای انسان از لاگ پیش از نوشتن (WAL) یک کلاستر پایگاه‌داده PostgreSQL

pg_waldump [option...] [startseg [endseg]]

دستور pg_waldump لاگ پیش از نوشتن (WAL) را نمایش می‌دهد و عمدتاً برای اهداف اشکال‌زدایی یا آموزشی مفید است.

این ابزار تنها توسط کاربری که سرور را نصب کرده است می‌تواند اجرا شود، چرا که نیازمند دسترسی فقط‌خواندنی به دایرکتوری داده (data directory) است.

گزینه‌های خط فرمان زیر مکان و قالب خروجی را کنترل می‌کنند:

startseg

شروع خواندن از فایل سگمنت WAL مشخص‌شده. این کار به‌طور ضمنی مسیری را که فایل‌ها در آن جستجو می‌شوند و همچنین خط زمانی (timeline) مورد استفاده را تعیین می‌کند.

endseg

توقف پس از خواندن فایل سگمنت WAL مشخص‌شده.

-b
--bkp-details

خروجی دادن اطلاعات تفصیلی درباره بلوک‌های پشتیبان (backup blocks).

-B block
--block=block

تنها نمایش رکوردهایی که بلوک داده‌شده را تغییر می‌دهند. رابطه (relation) نیز باید با --relation یا -R مشخص شود.

-e end
--end=end

توقف خواندن در مکان مشخص‌شده WAL، به‌جای خواندن تا انتهای جریان لاگ.

-f
--follow

پس از رسیدن به انتهای WAL معتبر، هر یک ثانیه یک‌بار برای پدیدار شدن WAL جدید بررسی (poll) ادامه یابد.

-F fork
--fork=fork

تنها نمایش رکوردهایی که بلوک‌ها را در انشعاب (fork) داده‌شده تغییر می‌دهند. مقادیر معتبر عبارتند از main برای انشعاب اصلی، fsm برای نقشه فضای آزاد (free space map)، vm برای نقشه رویت‌پذیری (visibility map)، و init برای انشعاب init.

-n limit
--limit=limit

نمایش تعداد مشخص‌شده‌ای از رکوردها و سپس توقف.

-p path
--path=path

دایرکتوری را برای جستجوی فایل‌های سگمنت WAL یا دایرکتوری با یک زیردایرکتوری pg_wal که شامل چنین فایل‌هایی است تعیین می‌کند. پیش‌فرض جستجو در دایرکتوری جاری، زیردایرکتوری pg_wal از دایرکتوری جاری، و زیردایرکتوری pg_wal از PGDATA است.

-q
--quiet

هیچ خروجی چاپ نشود، مگر برای خطاها. این گزینه زمانی مفید است که می‌خواهید بدانید آیا بازه‌ای از رکوردهای WAL با موفقیت تجزیه (parse) می‌شوند یا خیر، اما محتوای رکوردها برایتان اهمیتی ندارد.

-r rmgr
--rmgr=rmgr

تنها نمایش رکوردهای تولیدشده توسط مدیر منبع (resource manager) مشخص‌شده. می‌توانید این گزینه را چندین بار برای انتخاب چندین مدیر منبع مشخص کنید. اگر list به‌عنوان نام داده شود، فهرستی از نام‌های معتبر مدیر منبع چاپ شده و برنامه خارج می‌شود.

افزونه‌ها ممکن است مدیران منبع سفارشی تعریف کنند، اما pg_waldump ماژول افزونه را بارگذاری نمی‌کند و بنابراین مدیران منبع سفارشی را بر اساس نام تشخیص نمی‌دهد. در عوض، می‌توانید مدیران منبع سفارشی را به‌صورت custom### مشخص کنید که در آن ### شناسه سه‌رقمی مدیر منبع است. نام‌هایی به این شکل همیشه معتبر در نظر گرفته می‌شوند.

-R tblspc/db/rel
--relation=tblspc/db/rel

تنها نمایش رکوردهایی که بلوک‌ها را در رابطه (relation) داده‌شده تغییر می‌دهند. رابطه با شناسه فضای‌جدول (tablespace OID)، شناسه پایگاه‌داده (database OID) و relfilenode که با اسلش از یکدیگر جدا شده‌اند مشخص می‌شود، برای مثال 1234/12345/12345. این همان قالبی است که برای روابط در خروجی برنامه استفاده می‌شود.

-s start
--start=start

مکان WAL که خواندن از آنجا آغاز می‌شود. پیش‌فرض شروع خواندن از نخستین رکورد معتبر WAL است که در اولین فایل پیدا شده یافت می‌شود.

-t timeline
--timeline=timeline

خط زمانی (timeline) که رکوردهای WAL از آن خوانده می‌شوند. پیش‌فرض استفاده از مقدار موجود در startseg است، اگر مشخص شده باشد؛ در غیر این صورت، مقدار پیش‌فرض 1 است. مقدار می‌تواند به‌صورت ده‌دهی یا شانزده‌شانزدهی مشخص شود، برای مثال 17 یا 0x11.

-V
--version

چاپ نسخه pg_waldump و خروج.

-w
--fullpage

تنها نمایش رکوردهایی که شامل تصاویر کامل صفحه (full page images) هستند. -x xid
--xid=xid
تنها رکوردهای نشانه‌گذاری‌شده با شناسه تراکنش (transaction ID) داده‌شده را نمایش می‌دهد.

-z
--stats[=record]

نمایش آمار خلاصه (تعداد و اندازه رکوردها و تصاویر تمام‌صفحه) به جای رکوردهای تکی. به صورت اختیاری، آمارها را به جای هر rmgr، به ازای هر رکورد تولید می‌کند.

اگر pg_waldump با سیگنال SIGINT (Control+C) متوقف شود، خلاصه آمارهای محاسبه‌شده تا زمان توقف نمایش داده می‌شود. این عملیات در Windows پشتیبانی نمی‌شود.

--save-fullpage=save_path

تصاویر تمام‌صفحه (full page images) یافت‌شده در رکوردهای WAL را در دایرکتوری save_path ذخیره می‌کند. تصاویر ذخیره‌شده مشمول همان معیارهای پالایش و محدودیتی هستند که بر رکوردهای نمایش‌داده‌شده اعمال می‌شود.

تصاویر تمام‌صفحه با این قالب نام‌گذاری فایل ذخیره می‌شوند: TIMELINE-LSN.RELTABLESPACE.DATOID.RELNODE.BLKNO_FORK نام فایل‌ها از بخش‌های زیر تشکیل شده‌اند:

مؤلفه توضیحات
TIMELINE خط زمانی (timeline) مربوط به فایل قطعهٔ WAL که رکورد در آن واقع شده است، قالب‌بندی‌شده به صورت یک عدد هگزادسیمال ۸-رقمی %08X
LSN مقدار LSN رکورد حاوی این تصویر، قالب‌بندی‌شده به صورت دو عدد هگزادسیمال ۸-رقمی %08X-%08X
RELTABLESPACE شناسه OID مربوط به فضای جدول (tablespace) بلوک
DATOID شناسه OID مربوط به پایگاه‌داده بلوک
RELNODE مقدار filenode بلوک
BLKNO شماره بلوک مربوط به بلوک
FORK نام انشعابی (fork) که تصویر تمام‌صفحه از آن آمده است، مانند main، fsm، vm یا init.

-?
--help

نمایش راهنما درباره آرگومان‌های خط فرمان pg_waldump و خروج.

PGDATA

دایرکتوری داده؛ همچنین گزینهٔ -p را ببینید.

PG_COLOR

مشخص می‌کند که آیا در پیام‌های عیب‌یابی از رنگ استفاده شود یا خیر. مقادیر ممکن عبارت‌اند از always، auto و never.

هنگامی که سرور در حال اجرا است، ممکن است نتایج نادرستی ارائه دهد.

فقط خط زمانی (timeline) مشخص‌شده نمایش داده می‌شود (یا در صورت عدم تعیین، مقدار پیش‌فرض). رکوردهای موجود در سایر خط‌های زمانی نادیده گرفته می‌شوند.

pg_waldump نمی‌تواند فایل‌های WAL با پسوند .partial را بخواند. در صورتی که نیاز به خواندن آن فایل‌ها باشد، پسوند .partial باید از نام فایل حذف شود.

بخش 28.6

2026 PostgreSQL 18.6