| PG_ARCHIVECLEANUP(1) | PostgreSQL 18.6 Documentation | PG_ARCHIVECLEANUP(1) |
نام (NAME)
pg_archivecleanup - پاکسازی فایلهای آرشیو WAL در PostgreSQL
خلاصه دستور (SYNOPSIS)
pg_archivecleanup [option...] archivelocation oldestkeptwalfile
توضیحات (DESCRIPTION)
ابزار pg_archivecleanup طراحی شده است تا به عنوان یک archive_cleanup_command برای پاکسازی آرشیوهای فایل WAL هنگام اجرا به عنوان یک سرور standby (بخش 26.2 را ببینید) استفاده شود. همچنین میتوان از pg_archivecleanup به عنوان یک برنامه مستقل برای پاکسازی آرشیو فایلهای WAL استفاده کرد.
جهت پیکربندی یک سرور standby برای استفاده از pg_archivecleanup، عبارت زیر را در فایل پیکربندی postgresql.conf آن قرار دهید:
archive_cleanup_command = 'pg_archivecleanup archivelocation %r'
که در آن archivelocation دایرکتوریای است که فایلهای بخش WAL باید از آن حذف شوند.
هنگامی که درون archive_cleanup_command استفاده شود، تمام فایلهای WAL که از نظر منطقی قبل از مقدار آرگومان %r قرار دارند از archivelocation حذف خواهند شد. این امر تعداد فایلهایی را که باید نگهداری شوند به حداقل میرساند، در حالی که قابلیت راهاندازی مجدد پس از خرابی (crash-restart) را حفظ میکند. استفاده از این پارامتر زمانی مناسب است که archivelocation یک ناحیه موقت (staging) برای این سرور standby بهخصوص باشد، اما زمانی که archivelocation به عنوان یک ناحیه بلندمدت آرشیو WAL در نظر گرفته شده است، یا زمانی که چند سرور standby در حال بازیابی از همان مکان آرشیو هستند، مناسب نیست.
هنگامی که به عنوان یک برنامه مستقل استفاده شود، تمام فایلهای WAL که از نظر منطقی قبل از oldestkeptwalfile هستند، از archivelocation حذف خواهند شد. در این حالت، اگر نام فایلی با پسوند .partial یا .backup را مشخص کنید، تنها پیشوند فایل به عنوان oldestkeptwalfile استفاده خواهد شد. این شیوه برخورد با نام فایل .backup به شما اجازه میدهد تا تمام فایلهای WAL آرشیو شده قبل از یک پشتیبان پایه (base backup) مشخص را بدون بروز خطا حذف کنید. به عنوان مثال، نمونه زیر تمام فایلهای قدیمیتر از فایل WAL با نام 000000010000003700000010 را حذف میکند:
pg_archivecleanup -d archive 000000010000003700000010.00000020.backup pg_archivecleanup: keep WAL file "archive/000000010000003700000010" and later pg_archivecleanup: removing file "archive/00000001000000370000000F" pg_archivecleanup: removing file "archive/00000001000000370000000E"
pg_archivecleanup فرض میکند که archivelocation دایرکتوریای با دسترسی خواندن و نوشتن برای کاربری است که مالک سرور میباشد.
گزینهها (OPTIONS)
pg_archivecleanup آرگومانهای خط فرمان زیر را میپذیرد:
-b
--clean-backup-history
-d
--debug
-n
--dry-run
-V
--version
-x extension
--strip-extension=extension
-?
--help
محیط (ENVIRONMENT)
متغیر محیطی PG_COLOR مشخص میکند که آیا در پیامهای عیبیابی از رنگ استفاده شود یا خیر. مقادیر معتبر عبارتند از always، auto و never.
نکات (NOTES)
pg_archivecleanup طراحی شده است تا هنگام استفاده به عنوان یک ابزار مستقل با PostgreSQL نسخه 8.0 و بالاتر، یا هنگام استفاده به عنوان دستور پاکسازی آرشیو با PostgreSQL نسخه 9.0 و بالاتر کار کند.
pg_archivecleanup به زبان C نوشته شده است و دارای کد منبعی با ویرایش آسان است که بخشهای مشخصی در آن برای تغییر متناسب با نیازهای شما تعبیه شده است.
مثالها (EXAMPLES)
در سیستمهای لینوکس یا یونیکس، میتوانید از این دستور استفاده کنید:
archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
در صورتی که دایرکتوری آرشیو به طور فیزیکی روی سرور standby واقع شده باشد، به طوری که archive_command از طریق NFS به آن دسترسی دارد، اما فایلها برای سرور standby محلی هستند. این پیکربندی باعث میشود:
| 2026 | PostgreSQL 18.6 |