| PG_RECVLOGICAL(1) | PostgreSQL 18.6 Documentation | PG_RECVLOGICAL(1) |
نام (NAME)
pg_recvlogical - مدیریت جریانهای رمزگشایی منطقی PostgreSQL
خلاصه دستور (SYNOPSIS)
pg_recvlogical [گزینه...]
توضیحات (DESCRIPTION)
pg_recvlogical شکافهای رونوشتبرداری رمزگشایی منطقی را کنترل کرده و دادهها را از این شکافهای رونوشتبرداری به صورت جریانی دریافت میکند.
این ابزار اتصالی در حالت رونوشتبرداری ایجاد میکند، بنابراین مشمول همان محدودیتهای pg_receivewal(1) بهعلاوهٔ محدودیتهای رونوشتبرداری منطقی است (فصل 47 را ببینید).
pg_recvlogical هیچ معادلی برای حالتهای peek و get در رابط SQL رمزگشایی منطقی ندارد. این دستور تأییدیههای بازپخش دادهها را به صورت تنبل (lazy) هنگام دریافت و در زمان خروج تمیز ارسال میکند. برای بررسی دادههای در انتظار در یک شکاف بدون مصرف کردن آنها، از pg_logical_slot_peek_changes استفاده کنید.
در صورت نبود خطاهای مهلک، pg_recvlogical تا زمانی که توسط سیگنالهای SIGINT (Control+C) یا SIGTERM متوقف شود، اجرا خواهد شد.
هنگامی که pg_recvlogical سیگنال SIGHUP را دریافت میکند، فایل خروجی فعلی را بسته و فایل جدیدی را با استفاده از نام فایل تعیینشده توسط گزینهٔ --file باز میکند. این ویژگی اجازه میدهد تا با تغییر نام فایل فعلی و سپس ارسال سیگنال SIGHUP به pg_recvlogical، فایل خروجی را چرخش (rotate) دهید.
گزینهها (OPTIONS)
حداقل یکی از گزینههای زیر باید برای انتخاب یک عملیات مشخص شود:
--create-slot
گزینههای --slot و --dbname برای این عملیات الزامی هستند.
گزینههای --enable-two-phase و --enable-failover را میتوان همراه با --create-slot مشخص کرد.
--drop-slot
گزینهٔ --slot برای این عملیات الزامی است.
--start
گزینههای --slot، --dbname و --file برای این عملیات الزامی هستند.
قالب جریان توسط افزونه خروجی تعیینشده هنگام ایجاد شکاف، مشخص میشود.
اتصال باید به همان پایگاه دادهای برقرار شود که برای ایجاد شکاف استفاده شده است.
میتوان --create-slot و --start را با هم مشخص کرد. --drop-slot نمیتواند با عملیات دیگری ترکیب شود.
گزینههای خط فرمان زیر مکان و قالب خروجی و سایر رفتارهای رونوشتبرداری را کنترل میکنند:
-E lsn
--endpos=lsn
اگر رکوردی با LSN دقیقاً برابر با lsn وجود داشته باشد، آن رکورد در خروجی نوشته خواهد شد.
گزینهٔ --endpos از مرزهای تراکنش آگاه نیست و ممکن است خروجی را در میانه یک تراکنش قطع کند. هر تراکنشی که خروجی آن ناقص باشد مصرفشده تلقی نخواهد شد و هنگام خواندن بعدی از شکاف، دوباره بازپخش خواهد شد. پیامهای تکی هرگز بریده نمیشوند.
--enable-failover
-f filename
--file=filename
این پارامتر برای --start الزامی است.
-F interval_seconds
--fsync-interval=interval_seconds
سرور گاهی اوقات از کلاینت درخواست میکند که یک تخلیه انجام داده و موقعیت تخلیه را به سرور گزارش دهد. این تنظیم افزون بر آن است تا عمل تخلیه با بسامد بیشتری انجام شود.
مشخص کردن بازهٔ زمانی 0 فراخوانیهای fsync() را بهطور کامل غیرفعال میکند، در حالی که همچنان پیشرفت را به سرور گزارش میدهد. در این حالت، در صورت خرابی و توقف ناگهانی (crash)، ممکن است دادهها از دست بروند.
-I lsn
--startpos=lsn
--if-not-exists
--no-loop
-o name[=value]
--option=name[=value]
-P plugin
--plugin=plugin
-s interval_seconds
--status-interval=interval_seconds
-S slot_name
--slot=slot_name
این پارامتر برای هر یک از این عملیاتها الزامی است.
-t
--enable-two-phase
--two-phase
(منسوخشده)
-v
--verbose
گزینههای خط فرمان زیر پارامترهای اتصال به پایگاهداده را کنترل میکنند.
-d dbname
--dbname=dbname
این پارامتر برای --create-slot و --start الزامی است.
-h hostname-or-ip
--host=hostname-or-ip
-p port
--port=port
-U user
--username=user
-w
--no-password
-W
--password
این گزینه هرگز ضروری نیست، زیرا pg_recvlogical در صورتی که سرور احراز هویت با گذرواژه را بخواهد، بهطور خودکار درخواست گذرواژه خواهد کرد. با این حال، pg_recvlogical یک تلاش اتصال را برای فهمیدن اینکه سرور گذرواژه میخواهد هدر خواهد داد. در برخی موارد برای پرهیز از این تلاش اتصال اضافه، وارد کردن -W ارزشش را دارد.
گزینههای اضافی زیر در دسترس هستند:
-V
--version
-?
--help
ابزار pg_recvlogical هنگامی که با سیگنال SIGINT یا SIGTERM خاتمه یابد، با وضعیت 0 خارج خواهد شد. (این روش عادی برای پایان دادن به آن است؛ بنابراین خطا محسوب نمیشود.) برای خطاهای مهلک یا سایر سیگنالها، وضعیت خروج غیرصفر خواهد بود.
محیط (ENVIRONMENT)
این ابزار، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانیشده توسط libpq استفاده میکند (بخش 32.15 را ببینید).
متغیر محیطی PG_COLOR مشخص میکند که آیا در پیامهای عیبیابی از رنگ استفاده شود یا خیر. مقادیر ممکن عبارتاند از always، auto و never.
نکات (NOTES)
چنانچه مجوزهای گروهی در کلاستر مبدأ فعال باشند، pg_recvlogical مجوزهای گروهی را روی فایلهای خروجی حفظ خواهد کرد.
مثالها (EXAMPLES)
برای مشاهده یک مثال به بخش 47.1 مراجعه کنید.
همچنین ببینید (SEE ALSO)
| 2026 | PostgreSQL 18.6 |