PG_COMBINEBACKUP(1) PostgreSQL 18.6 Documentation PG_COMBINEBACKUP(1)

pg_combinebackup - بازسازی یک پشتیبان کامل از یک پشتیبان افزایشی و پشتیبان‌های وابسته

pg_combinebackup [option...] [backup_directory...]

ابزار pg_combinebackup برای بازسازی یک پشتیبان کامل ترکیبی (synthetic full backup) از یک پشتیبان افزایشی (incremental backup) و پشتیبان‌های پیشینی که به آن‌ها وابسته است، استفاده می‌شود.

تمام پشتیبان‌های مورد نیاز را در خط فرمان از قدیمی‌ترین به جدیدترین مشخص کنید. به این معنی که نخستین دایرکتوری پشتیبان باید مسیر پشتیبان کامل، و آخرین مورد باید مسیر پشتیبان افزایشی نهایی باشد که مایل به بازیابی آن هستید. پشتیبان بازسازی‌شده در دایرکتوری خروجی مشخص‌شده توسط گزینهٔ -o نوشته خواهد شد.

ابزار pg_combinebackup تلاش خواهد کرد تا بررسی کند که پشتیبان‌های مشخص‌شده یک زنجیرهٔ پشتیبان معتبر تشکیل می‌دهند که می‌توان از آن یک پشتیبان کاملِ صحیح را بازسازی کرد. با این حال، این ابزار به این منظور طراحی نشده است که به شما در ردیابی این که کدام پشتیبان‌ها به کدام پشتیبان‌های دیگر وابسته‌اند کمک کند. اگر یک یا چند مورد از پشتیبان‌های پیشین را که پشتیبان افزایشی شما به آن‌ها وابسته است حذف کنید، قادر به بازیابی آن نخواهید بود. علاوه بر این، pg_combinebackup تنها تلاش می‌کند بررسی کند که پشتیبان‌ها ارتباط درستی با یکدیگر دارند، نه اینکه هر نسخهٔ پشتیبان منفرد دست‌نخورده و سالم باشد؛ برای این منظور، از pg_verifybackup(1) استفاده کنید.

از آنجا که خروجی pg_combinebackup یک پشتیبان کامل ترکیبی است، می‌تواند به عنوان ورودی برای فراخوانی‌های بعدی pg_combinebackup استفاده شود. پشتیبان کامل ترکیبی را می‌توان در خط فرمان به جای زنجیرهٔ پشتیبان‌هایی که از آن‌ها بازسازی شده است، مشخص کرد.

-d
--debug

چاپ خروجی‌های فراوان لاگ عیب‌یابی (debug) در stderr.

-k
--link

استفاده از پیوندهای سخت (hard links) به جای کپی کردن فایل‌ها در پشتیبان ترکیبی. بازسازی پشتیبان ترکیبی ممکن است سریع‌تر باشد (بدون کپی فایل) و فضای دیسک کمتری مصرف کند، اما هنگام استفاده از دایرکتوری خروجی باید احتیاط کرد، زیرا هرگونه تغییر در آن دایرکتوری (برای نمونه، راه‌اندازی سرور) می‌تواند روی دایرکتوری‌های ورودی نیز تأثیر بگذارد. به همین ترتیب، تغییرات در دایرکتوری‌های ورودی (مثلاً راه‌اندازی سرور روی پشتیبان کامل) می‌تواند روی دایرکتوری خروجی اثر بگذارد. بنابراین، بهتر است از این گزینه زمانی استفاده شود که دایرکتوری‌های ورودی فقط نسخه‌هایی باشند که پس از تکمیل کار pg_combinebackup حذف خواهند شد.

نیازمند این است که پشتیبان‌های ورودی و دایرکتوری خروجی در یک سیستم فایل یکسان قرار داشته باشند.

اگر یک مانیفست پشتیبان (backup manifest) در دسترس نباشد یا شامل چکسام (checksum) از نوع مناسب نباشد، پیوندهای سخت همچنان ایجاد خواهند شد، اما فایل‌ها برای محاسبهٔ چکسام به‌صورت بلوک‌به‌بلوک نیز خوانده می‌شوند.

-n
--dry-run

گزینهٔ -n/--dry-run به pg_combinebackup دستور می‌دهد تا بدون ایجاد واقعی دایرکتوری هدف یا هرگونه فایل خروجی، تعیین کند که چه عملیاتی انجام خواهد شد. این گزینه به‌ویژه در ترکیب با --debug بسیار مفید است.

-N
--no-sync

به‌طور پیش‌فرض، pg_combinebackup منتظر می‌ماند تا همهٔ فایل‌ها به‌صورت امن روی دیسک نوشته شوند. این گزینه باعث می‌شود که pg_combinebackup بدون انتظار برگردد که سریع‌تر است، اما به این معنی است که یک کرش (خرابی) پس‌آیند سیستم‌عامل می‌تواند نسخهٔ پشتیبان خروجی را خراب یا ناقص رها کند. به‌طور کلی، این گزینه برای آزمایش مفید است اما نباید هنگام ایجاد یک استقرار عملیاتی استفاده شود.

-o outputdir
--output=outputdir

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

-T olddir=newdir
--tablespace-mapping=olddir=newdir

فضای جدول (tablespace) واقع در دایرکتوری olddir را در طول پشتیبان‌گیری به newdir منتقل می‌کند. مقدار olddir مسیر مطلق فضای جدول آن‌گونه که در آخرین پشتیبان مشخص‌شده در خط فرمان وجود دارد، و newdir مسیر مطلق مورد استفاده برای فضای جدول در پشتیبان بازسازی‌شده است. اگر هر یک از مسیرها نیاز به علامت مساوی (=) داشته باشد، پیش از آن یک بک‌اسلش قرار دهید. این گزینه را می‌توان چندین بار برای چندین فضای جدول مشخص کرد.

--clone

استفاده از شبیه‌سازی کارآمد فایل (که در برخی سیستم‌ها با نام “reflinks” نیز شناخته می‌شود) به جای کپی کردن فایل‌ها در دایرکتوری داده جدید، که می‌تواند منجر به کپی تقریباً آنی فایل‌های داده شود.

اگر یک مانیفست پشتیبان در دسترس نباشد یا شامل چکسام از نوع مناسب نباشد، از کلون‌سازی فایل برای کپی فایل استفاده می‌شود، اما فایل برای محاسبهٔ چکسام به‌صورت بلوک‌به‌بلوک نیز خوانده خواهد شد.

شبیه‌سازی فایل تنها در برخی سیستم‌های عامل و سیستم‌های فایل پشتیبانی می‌شود. اگر این گزینه انتخاب شود اما پشتیبانی نشود، اجرای pg_combinebackup با خطا مواجه خواهد شد. در حال حاضر، این قابلیت در لینوکس (کرنل ۴.۵ یا جدیدتر) با Btrfs و XFS (در سیستم‌های فایلی که با پشتیبانی از reflink ایجاد شده‌اند)، و در macOS با APFS پشتیبانی می‌شود.

--copy

انجام کپی عادی فایل. این حالت پیش‌فرض است. (همچنین ببینید: --copy-file-range، --clone، و -k/--link.)

--copy-file-range

استفاده از فراخوان سیستمی copy_file_range برای کپی کارآمد. در برخی سیستم‌های فایل، این کار نتایجی مشابه با --clone ایجاد کرده و بلوک‌های فیزیکی دیسک را به اشتراک می‌گذارد، در حالی که در برخی دیگر ممکن است همچنان بلوک‌ها را کپی کند، اما این کار را از طریق یک مسیر بهینه‌سازی‌شده انجام می‌دهد. در حال حاضر، این ویژگی در لینوکس و FreeBSD پشتیبانی می‌شود.

اگر یک مانیفست پشتیبان در دسترس نباشد یا شامل چکسام از نوع مناسب نباشد، از copy_file_range برای کپی کردن فایل استفاده می‌شود، اما فایل برای محاسبهٔ چکسام به‌صورت بلوک‌به‌بلوک نیز خوانده خواهد شد.

--manifest-checksums=algorithm

مانند pg_basebackup(1)، ابزار pg_combinebackup نیز یک مانیفست پشتیبان در دایرکتوری خروجی می‌نویسد. این گزینه الگوریتم چکسامی را مشخص می‌کند که باید برای هر فایل گنجانده‌شده در مانیفست پشتیبان اعمال شود. در حال حاضر، الگوریتم‌های موجود عبارتند از: NONE، CRC32C، SHA224، SHA256، SHA384 و SHA512. مقدار پیش‌فرض CRC32C است.

--no-manifest

تولید مانیفست پشتیبان را غیرفعال می‌کند. اگر این گزینه مشخص نشود، یک مانیفست پشتیبان برای نسخهٔ پشتیبان بازسازی‌شده در دایرکتوری خروجی نوشته خواهد شد.

--sync-method=method

هنگامی که روی fsync (پیش‌فرض) تنظیم شود، pg_combinebackup به‌صورت بازگشتی تمام فایل‌های موجود در دایرکتوری پشتیبان را باز کرده و همگام‌سازی (synchronize) می‌کند. زمانی که از فرمت plain استفاده می‌شود، جستجوی فایل‌ها برای دایرکتوری WAL و هر فضای جدول پیکربندی‌شده، پیوندهای نمادین (symbolic links) را دنبال خواهد کرد.

در لینوکس، می‌توان از syncfs به جای آن استفاده کرد تا از سیستم‌عامل خواسته شود کل سیستم فایلی را که شامل دایرکتوری پشتیبان است همگام‌سازی کند. زمانی که از فرمت plain استفاده می‌شود، pg_combinebackup همچنین سیستم‌های فایلی را که حاوی فایل‌های WAL و هر فضای جدول هستند همگام‌سازی خواهد کرد. برای اطلاعات بیشتر دربارهٔ نکاتی که باید هنگام استفاده از syncfs از آن‌ها آگاه باشید، recovery_init_sync_method را ببینید.

این گزینه زمانی که از --no-sync استفاده شود، هیچ تأثیری ندارد.

-V
--version

نسخهٔ pg_combinebackup را چاپ کرده و خارج می‌شود.

-?
--help

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

ابزار pg_combinebackup هنگام نوشتن در دایرکتوری خروجی، چکسام‌های صفحات را دوباره محاسبه نمی‌کند. بنابراین، اگر هر یک از پشتیبان‌های استفاده‌شده برای بازسازی با چکسام‌های غیرفعال گرفته شده باشند، اما پشتیبان نهایی با چکسام‌های فعال گرفته شده باشد، دایرکتوری حاصل ممکن است شامل صفحاتی با چکسام‌های نامعتبر باشد.

برای جلوگیری از این مشکل، تهیهٔ یک پشتیبان کاملِ جدید پس از تغییر وضعیت چکسام کلاستر با استفاده از pg_checksums(1) توصیه می‌شود. در غیر این صورت، می‌توانید چکسام‌ها را در دایرکتوری ایجادشده توسط pg_combinebackup غیرفعال کرده و سپس در صورت تمایل مجدداً فعال کنید تا مشکل برطرف شود.

این ابزار، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانی‌شده توسط libpq استفاده می‌کند (بخش 32.15 را ببینید).

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

pg_basebackup(1)

2026 PostgreSQL 18.6