'\" t .\" Title: pg_dumpall .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026 .\" Manual: PostgreSQL 18.6 Documentation .\" Source: PostgreSQL 18.6 .\" Language: Persian .\" .TH "PG_DUMPALL" "1" "2026" "PostgreSQL 18.6" "PostgreSQL 18.6 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" pg_dumpall \- استخراج تمام پایگاه‌های داده یک کلاستر PostgreSQL در یک فایل اسکریپت .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBpg_dumpall\fR\ 'u \fBpg_dumpall\fR [\fIconnection\-option\fR...] [\fIoption\fR...] .SH "توضیحات (DESCRIPTION)" .PP دستور pg_dumpall ابزاری برای استخراج و ذخیره‌سازی (\(lqdump کردن\(rq) تمامی پایگاه‌های داده PostgreSQL یک کلاستر در قالب یک فایل اسکریپت است\&. این فایل اسکریپت شامل دستورهای SQL است که می‌تواند به عنوان ورودی به \fBpsql\fR(1) جهت بازیابی پایگاه‌های داده داده شود\&. این ابزار کار خود را با فراخوانی \fBpg_dump\fR(1) برای هر یک از پایگاه‌های داده موجود در کلاستر انجام می‌دهد\&. همچنین pg_dumpall اشیاء سراسری (global objects) مشترک میان تمام پایگاه‌های داده، از جمله نقش‌های پایگاه‌داده (roles)، فضاهای جدول (tablespaces) و اعطای دسترسی‌ها برای پارامترهای پیکربندی را استخراج می‌کند\&. (ابزار pg_dump این اشیاء را ذخیره نمی‌کند\&.) .PP از آنجا که pg_dumpall جدول‌ها را از تمام پایگاه‌های داده می‌خواند، به احتمال بسیار زیاد برای تهیه یک نسخه خروجی کامل باید به عنوان کاربر ارشد (superuser) پایگاه‌داده متصل شوید\&. همچنین برای اجرای اسکریپت ذخیره‌شده به دسترسی‌های superuser نیاز خواهید داشت تا اجازه افزودن نقش‌ها و ایجاد پایگاه‌های داده را داشته باشید\&. .PP اسکریپت SQL در خروجی استاندارد نوشته خواهد شد\&. از گزینه \fB\-f\fR/\fB\-\-file\fR یا عملگرهای تغییر مسیر پوسته برای هدایت آن به یک فایل استفاده کنید\&. .PP دستور pg_dumpall باید چندین بار به سرور PostgreSQL متصل شود (یک بار به ازای هر پایگاه‌داده)\&. اگر از احراز هویت با گذرواژه استفاده می‌کنید، هر بار گذرواژه را درخواست خواهد کرد\&. در چنین مواردی، داشتن یک فایل ~/\&.pgpass بسیار سودمند است\&. برای اطلاعات بیشتر به بخش\ \&32.16 مراجعه کنید\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار (Warning)\fR .ps -1 .br .PP بازیابی یک نسخه پشتیبان باعث می‌شود که سیستم مقصد کدهای دلخواه انتخاب‌شده توسط superuserهای مبدأ را اجرا کند\&. پشتیبان‌گیری‌های جزئی و بازیابی‌های جزئی نیز این مسئله را محدود نمی‌کنند\&. اگر به superuserهای مبدأ اعتماد ندارید، عبارات SQL استخراج‌شده باید پیش از بازیابی به دقت بررسی شوند\&. توجه داشته باشید که نیازی نیست کلاینتِ اجراکنندهٔ فرایند استخراج و بازیابی به superuserهای مبدأ یا مقصد اعتماد داشته باشد\&. .sp .5v .RE .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های خط فرمان زیر محتوا و قالب خروجی را کنترل می‌کنند\&. .PP \fB\-a\fR .br \fB\-\-data\-only\fR .RS 4 تنها داده‌ها را استخراج می‌کند، نه شمای پایگاه‌داده (تعاریف داده‌ها) یا آمارها را\&. .RE .PP \fB\-c\fR .br \fB\-\-clean\fR .RS 4 دستورهای SQL برای \fBDROP\fR کردن تمامی پایگاه‌های داده، نقش‌ها و فضاهای جدول استخراج‌شده را پیش از ایجاد مجدد آنها درج می‌کند\&. این گزینه زمانی مفید است که بازیابی قرار باشد روی یک کلاستر موجود بازنویسی انجام دهد\&. اگر هر یک از اشیاء در کلاستر مقصد وجود نداشته باشند، پیام‌های خطای قابل چشم‌پوشی در طول بازیابی گزارش می‌شوند، مگر اینکه \fB\-\-if\-exists\fR نیز مشخص شده باشد\&. .RE .PP \fB\-E \fR\fB\fIencoding\fR\fR .br \fB\-\-encoding=\fR\fB\fIencoding\fR\fR .RS 4 خروجی استخراج‌شده را با کدگذاری نویسه (character set encoding) مشخص‌شده ایجاد می‌کند\&. به طور پیش‌فرض، خروجی در کدگذاری پایگاه‌داده ایجاد می‌شود\&. (روش دیگر برای دستیابی به نتیجه مشابه، تنظیم متغیر محیطی \fBPGCLIENTENCODING\fR روی کدگذاری مورد نظر برای خروجی است\&.) .RE .PP \fB\-f \fR\fB\fIfilename\fR\fR .br \fB\-\-file=\fR\fB\fIfilename\fR\fR .RS 4 خروجی را به فایل مشخص‌شده می‌فرستد\&. اگر این گزینه نادیده گرفته شود، از خروجی استاندارد استفاده خواهد شد\&. .RE .PP \fB\-g\fR .br \fB\-\-globals\-only\fR .RS 4 تنها اشیاء سراسری (نقش‌ها و فضاهای جدول) را استخراج می‌کند و پایگاه‌های داده را شامل نمی‌شود\&. .RE .PP \fB\-O\fR .br \fB\-\-no\-owner\fR .RS 4 دستوراتی را برای تطبیق مالکیت اشیاء با پایگاه‌داده اصلی صادر نمی‌کند\&. به طور پیش‌فرض، pg_dumpall دستورات \fBALTER OWNER\fR یا \fBSET SESSION AUTHORIZATION\fR را برای تعیین مالکیت عناصر شمای ایجادشده درج می‌کند\&. اجرای این دستورات هنگام اجرای اسکریپت با خطا مواجه خواهد شد، مگر اینکه توسط یک superuser (یا همان کاربری که مالک تمام اشیاء موجود در اسکریپت است) اجرا شود\&. برای ایجاد اسکریپتی که توسط هر کاربری قابل بازیابی باشد اما مالکیت تمام اشیاء را به همان کاربر اختصاص دهد، گزینه \fB\-O\fR را مشخص کنید\&. .RE .PP \fB\-r\fR .br \fB\-\-roles\-only\fR .RS 4 تنها نقش‌ها را استخراج می‌کند و پایگاه‌های داده یا فضاهای جدول را شامل نمی‌شود\&. .RE .PP \fB\-s\fR .br \fB\-\-schema\-only\fR .RS 4 تنها تعاریف اشیاء (شما) را استخراج می‌کند، نه داده‌ها را\&. .RE .PP \fB\-S \fR\fB\fIusername\fR\fR .br \fB\-\-superuser=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری superuser را جهت استفاده هنگام غیرفعال کردن محرک‌ها (triggers) مشخص می‌کند\&. این گزینه تنها زمانی کاربرد دارد که از \fB\-\-disable\-triggers\fR استفاده شود\&. (معمولاً بهتر است این گزینه درج نشود و در عوض اسکریپت حاصل مستقیماً توسط superuser اجرا شود\&.) .RE .PP \fB\-t\fR .br \fB\-\-tablespaces\-only\fR .RS 4 تنها فضاهای جدول را استخراج می‌کند و پایگاه‌های داده یا نقش‌ها را نادیده می‌گیرد\&. .RE .PP \fB\-v\fR .br \fB\-\-verbose\fR .RS 4 حالت پرگو (verbose) را مشخص می‌کند\&. این گزینه باعث می‌شود pg_dumpall زمان‌های شروع/پایان را در فایل خروجی و پیام‌های پیشرفت را در خطای استاندارد بنویسد\&. تکرار این گزینه باعث نمایش پیام‌های اشکال‌زدایی (debug) بیشتر در خطای استاندارد می‌شود\&. این گزینه به pg_dump نیز منتقل می‌گردد\&. .RE .PP \fB\-V\fR .br \fB\-\-version\fR .RS 4 نسخه pg_dumpall را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-x\fR .br \fB\-\-no\-privileges\fR .br \fB\-\-no\-acl\fR .RS 4 از استخراج دسترسی‌های کاربری (دستورهای grant/revoke) جلوگیری می‌کند\&. .RE .PP \fB\-\-binary\-upgrade\fR .RS 4 این گزینه برای استفاده توسط ابزارهای ارتقای درجا (in\-place upgrade) طراحی شده است\&. استفاده از آن برای اهداف دیگر توصیه و پشتیبانی نمی‌شود\&. رفتار این گزینه ممکن است در نسخه‌های بعدی بدون اطلاع قبلی تغییر کند\&. .RE.PP \fB\-\-column\-inserts\fR .br \fB\-\-attribute\-inserts\fR .RS 4 داده‌ها را به صورت دستورهای \fBINSERT\fR با نام صریح ستون‌ها (INSERT INTO \fItable\fR (\fIcolumn\fR, \&.\&.\&.) VALUES \&.\&.\&.) استخراج می‌کند\&. این کار بازیابی را بسیار کُند خواهد کرد؛ این گزینه عمدتاً برای ایجاد خروجی‌هایی مفید است که می‌توانند در پایگاه‌های داده غیر PostgreSQL بارگذاری شوند\&. .RE .PP \fB\-\-disable\-dollar\-quoting\fR .RS 4 این گزینه استفاده از نقل‌قول دلاری (dollar quoting) را برای بدنه توابع غیرفعال کرده و آن‌ها را وادار به استفاده از قواعد نگارشی استاندارد رشته‌های SQL می‌کند\&. .RE .PP \fB\-\-disable\-triggers\fR .RS 4 این گزینه تنها هنگام ایجاد خروجی به همراه داده و بدون شِما (schema) کاربرد دارد\&. این گزینه به pg_dumpall دستور می‌دهد تا دستورهایی را برای غیرفعال کردن موقت تریگرها روی جدول‌های مقصد در حین بازیابی داده‌ها بگنجاند\&. اگر بررسی‌های یکپارچگی ارجاعی یا تریگرهای دیگری روی جدول‌ها دارید که نمی‌خواهید حین بازیابی داده‌ها اجرا شوند، از این گزینه استفاده کنید\&. .sp در حال حاضر، دستورهای صادرشده برای \fB\-\-disable\-triggers\fR باید توسط مدیر سیستم (superuser) اجرا شوند\&. بنابراین، باید نام یک superuser را با \fB\-S\fR مشخص کنید، یا ترجیحاً دقت داشته باشید که اسکریپت حاصل به عنوان یک superuser اجرا شود\&. .RE .PP \fB\-\-exclude\-database=\fR\fB\fIpattern\fR\fR .RS 4 پایگاه‌های داده‌ای که نام آن‌ها با \fIpattern\fR مطابقت دارد را استخراج نمی‌کند\&. چندین الگو را می‌توان با نوشتن چندین گزینه \fB\-\-exclude\-database\fR مستثنی کرد\&. پارامتر \fIpattern\fR مطابق با همان قواعد مورد استفاده توسط دستورهای \ed در psql تفسیر می‌شود (به Patterns مراجعه کنید)، بنابراین چندین پایگاه داده را نیز می‌توان با نوشتن نویسه‌های عام (wildcard) در الگو مستثنی کرد\&. هنگام استفاده از نویسه‌های عام، در صورت نیاز الگو را در نقل‌قول قرار دهید تا از بسط نویسه‌های عام توسط شل (shell) جلوگیری شود\&. .RE .PP \fB\-\-extra\-float\-digits=\fR\fB\fIndigits\fR\fR .RS 4 هنگام استخراج داده‌های ممیز شناور (floating\-point)، به جای بیشینه دقت در دسترس، از مقدار مشخص‌شده extra_float_digits استفاده می‌کند\&. نسخه‌های پشتیبان روتین نباید از این گزینه استفاده کنند\&. .RE .PP \fB\-\-filter=\fR\fB\fIfilename\fR\fR .RS 4 نام فایلی را مشخص می‌کند که الگوهای پایگاه‌های داده مستثنی‌شده از خروجی از آن خوانده شوند\&. الگوها طبق همان قواعد \fB\-\-exclude\-database\fR تفسیر می‌شوند\&. برای خواندن از STDIN، از \- به عنوان نام فایل استفاده کنید\&. گزینه \fB\-\-filter\fR می‌تواند به همراه \fB\-\-exclude\-database\fR برای مستثنی کردن پایگاه‌های داده مشخص شود، و همچنین می‌تواند بیش از یک بار برای چندین فایل پالایه مشخص گردد\&. .sp این فایل در هر سطر یک الگوی پایگاه داده را با قالب زیر فهرست می‌کند: .sp .if n \{\ .RS 4 .\} .nf exclude database \fIPATTERN\fR .fi .if n \{\ .RE .\} .sp سطرهایی که با # شروع می‌شوند توضیح (comment) تلقی شده و نادیده گرفته می‌شوند\&. توضیحات می‌توانند پس از سطر الگوی شیء نیز قرار گیرند\&. سطرهای خالی نیز نادیده گرفته می‌شوند\&. برای چگونگی انجام نقل‌قول در الگوها به Patterns مراجعه کنید\&. .RE .PP \fB\-\-if\-exists\fR .RS 4 از دستورهای DROP \&.\&.\&. IF EXISTS برای حذف اشیاء در حالت \fB\-\-clean\fR استفاده می‌کند\&. این کار خطاهای \(lqdoes not exist\(rq را که ممکن است در غیر این صورت گزارش شوند، فرونشانی می‌کند\&. این گزینه معتبر نیست مگر اینکه \fB\-\-clean\fR نیز مشخص شده باشد\&. .RE .PP \fB\-\-inserts\fR .RS 4 داده‌ها را به صورت دستورهای \fBINSERT\fR (به جای \fBCOPY\fR) استخراج می‌کند\&. این کار بازیابی را بسیار کُند خواهد کرد؛ این گزینه عمدتاً برای ایجاد خروجی‌هایی مفید است که می‌توانند در پایگاه‌های داده غیر PostgreSQL بارگذاری شوند\&. توجه داشته باشید که اگر ترتیب ستون‌ها را تغییر داده باشید، ممکن است بازیابی به طور کلی با شکست مواجه شود\&. گزینه \fB\-\-column\-inserts\fR امن‌تر است، اگرچه حتی کُندتر خواهد بود\&. .RE .PP \fB\-\-load\-via\-partition\-root\fR .RS 4 هنگام استخراج داده‌های یک پارتیشن جدول، باعث می‌شود دستورهای \fBCOPY\fR یا \fBINSERT\fR به جای خودِ پارتیشن، ریشه سلسله‌مراتب پارتیشن‌بندی شامل آن را هدف قرار دهند\&. این کار موجب می‌شود هنگام بارگذاری داده‌ها، پارتیشن مناسب برای هر سطر مجدداً تعیین شود\&. این ممکن است هنگام بازیابی داده‌ها روی سروری که در آن سطرها همیشه در همان پارتیشن‌های سرور اصلی قرار نمی‌گیرند، مفید باشد\&. برای مثال، این حالت ممکن است زمانی رخ دهد که ستون پارتیشن‌بندی از نوع text باشد و دو سیستم تعاریف متفاوتی از collation مورد استفاده برای مرتب‌سازی ستون پارتیشن‌بندی داشته باشند\&. .RE .PP \fB\-\-lock\-wait\-timeout=\fR\fB\fItimeout\fR\fR .RS 4 در ابتدای استخراج اطلاعات، برای به دست آوردن قفل‌های اشتراکی جدول تا ابد منتظر نمی‌ماند\&. در عوض، در صورتی که نتواند در مدت زمان \fItimeout\fR مشخص‌شده یک جدول را قفل کند، با خطا متوقف می‌شود\&. این مهلت زمانی می‌تواند در هر یک از قالب‌های پذیرفته‌شده توسط \fBSET statement_timeout\fR مشخص شود\&. .RE .PP \fB\-\-no\-comments\fR .RS 4 دستورهای \fBCOMMENT\fR را در خروجی قرار نمی‌دهد\&. .RE .PP \fB\-\-no\-data\fR .RS 4 داده‌ها را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-policies\fR .RS 4 سیاست‌های امنیت سطحی (row security policies) را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-publications\fR .RS 4 انتشارات (publications) را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-role\-passwords\fR .RS 4 گذرواژه‌های نقش‌ها (roles) را استخراج نمی‌کند\&. هنگام بازیابی، نقش‌ها دارای گذرواژه تهی (null) خواهند بود و احراز هویت با گذرواژه همواره ناموفق خواهد بود تا زمانی که گذرواژه تنظیم شود\&. از آنجا که هنگام مشخص شدن این گزینه نیازی به مقادیر گذرواژه نیست، اطلاعات نقش از نمای کاتالوگ pg_roles به جای pg_authid خوانده می‌شود\&. بنابراین، این گزینه در صورتی که دسترسی به pg_authid توسط برخی سیاست‌های امنیتی محدود شده باشد نیز کاربردی است\&. .RE .PP \fB\-\-no\-schema\fR .RS 4 شِما (تعاریف داده) را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-security\-labels\fR .RS 4 برچسب‌های امنیتی را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-statistics\fR .RS 4 آمارها را استخراج نمی‌کند\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-\-no\-subscriptions\fR .RS 4 اشتراک‌ها (subscriptions) را استخراج نمی‌کند\&. .RE .PP \fB\-\-no\-sync\fR .RS 4 به طور پیش‌فرض، \fBpg_dumpall\fR منتظر می‌ماند تا تمام فایل‌ها به صورت ایمن روی دیسک نوشته شوند\&. این گزینه باعث می‌شود \fBpg_dumpall\fR بدون انتظار بازگردد، که سریع‌تر است اما به این معنی است که یک کرش بعدی سیستم‌عامل می‌تواند فایل خروجی را خراب کند\&. عموماً این گزینه برای آزمایش مفید است اما نباید هنگام استخراج داده‌ها از محیط‌های عملیاتی استفاده شود\&. .RE .PP \fB\-\-no\-table\-access\-method\fR .RS 4 دستورهایی برای انتخاب روش‌های دسترسی به جدول صادر نمی‌کند\&. با این گزینه، تمام اشیاء با هر روش دسترسی به جدولی که حین بازیابی پیش‌فرض باشد ایجاد خواهند شد\&. .RE .PP \fB\-\-no\-tablespaces\fR .RS 4 دستورهایی برای ایجاد tablespaceها یا انتخاب tablespaceها برای اشیاء صادر نمی‌کند\&. با این گزینه، تمام اشیاء در هر tablespaceای که حین بازیابی پیش‌فرض باشد ایجاد خواهند شد\&. .RE .PP \fB\-\-no\-toast\-compression\fR .RS 4 دستورهایی برای تنظیم روش‌های فشرده‌سازی TOAST صادر نمی‌کند\&. با این گزینه، تمام ستون‌ها با تنظیمات فشرده‌سازی پیش‌فرض بازیابی خواهند شد\&. .RE .PP \fB\-\-no\-unlogged\-table\-data\fR .RS 4 محتویات جدول‌های unlogged را استخراج نمی‌کند\&. این گزینه تاثیری بر استخراج یا عدم استخراج تعاریف جدول (شِما) ندارد؛ بلکه فقط از استخراج داده‌های جدول جلوگیری می‌کند\&. .RE.PP \fB\-\-on\-conflict\-do\-nothing\fR .RS 4 افزودن عبارت ON CONFLICT DO NOTHING به دستورهای \fBINSERT\fR\&. این گزینه تنها در صورتی معتبر است که \fB\-\-inserts\fR یا \fB\-\-column\-inserts\fR نیز مشخص شده باشد\&. .RE .PP \fB\-\-quote\-all\-identifiers\fR .RS 4 اجبار به قرار دادن تمام شناسه‌ها درون نقل‌قول (کوتیشن)\&. استفاده از این گزینه زمانی توصیه می‌شود که استخراج نسخه پشتیبان از سروری انجام می‌شود که نسخه اصلی (major version) PostgreSQL آن با نسخه pg_dumpall متفاوت است، یا زمانی که خروجی قرار است در سروری با نسخه اصلی متفاوتی بارگذاری شود\&. به‌طور پیش‌فرض، pg_dumpall فقط شناسه‌هایی را درون نقل‌قول قرار می‌دهد که در نسخه اصلی خودش جزو کلمات رزروشده هستند\&. این مسئله گاهی هنگام تعامل با سرورهایی از نسخه‌های دیگر که ممکن است مجموعه کلمات رزروشده آن‌ها اندکی تفاوت داشته باشد، باعث مشکلات سازگاری می‌شود\&. استفاده از \fB\-\-quote\-all\-identifiers\fR از چنین مشکلاتی جلوگیری می‌کند، هرچند به بهای خوانایی دشوارتر اسکریپت خروجی تمام می‌شود\&. .RE .PP \fB\-\-restrict\-key=\fR\fB\fIrestrict_key\fR\fR .RS 4 استفاده از رشته ارائه‌شده به عنوان کلید \fB\erestrict\fR در psql برای خروجی دامپ\&. اگر هیچ کلید محدودیتی مشخص نشود، pg_dumpall در صورت نیاز یک کلید تصادفی ایجاد خواهد کرد\&. کلیدها فقط می‌توانند شامل نویسه‌های الفبایی\-عددی باشند\&. .sp این گزینه عمدتاً برای اهداف آزمایشی و سایر سناریوهایی که نیازمند خروجی تکرارپذیر هستند (مانند مقایسه فایل‌های دامپ) در نظر گرفته شده است\&. استفاده از آن برای مصارف عمومی توصیه نمی‌شود، زیرا یک سرور مخرب با داشتن آگاهی قبلی از کلید ممکن است بتواند کد دلخواهی را تزریق کند که روی ماشینی که psql را با خروجی دامپ اجرا می‌کند، اجرا شود\&. .RE .PP \fB\-\-rows\-per\-insert=\fR\fB\fInrows\fR\fR .RS 4 استخراج داده‌ها به صورت دستورهای \fBINSERT\fR (به جای \fBCOPY\fR)\&. این گزینه حداکثر تعداد ردیف‌ها را در هر دستور \fBINSERT\fR کنترل می‌کند\&. مقدار مشخص‌شده باید عددی بزرگ‌تر از صفر باشد\&. هرگونه خطا در حین بازیابی، تنها باعث از دست رفتن ردیف‌هایی می‌شود که بخشی از دستور مشکل‌دار \fBINSERT\fR بوده‌اند، نه کل محتویات جدول\&. .RE .PP \fB\-\-statistics\fR .RS 4 استخراج آمار بهینه‌ساز (optimizer statistics)\&. .RE .PP \fB\-\-statistics\-only\fR .RS 4 تنها استخراج آمار، نه طرح‌واره (تعاریف داده) یا خود داده‌ها\&. آمار بهینه‌ساز برای جدول‌ها، نماهای محقق‌شده (materialized views)، جدول‌های خارجی و نمایه‌ها استخراج می‌شوند\&. .RE .PP \fB\-\-sequence\-data\fR .RS 4 گنجاندن داده‌های دنباله (sequence) در دامپ خروجی\&. این رفتار پیش‌فرض است مگر آنکه گزینه‌های \fB\-\-no\-data\fR، \fB\-\-schema\-only\fR یا \fB\-\-statistics\-only\fR مشخص شده باشند\&. .RE .PP \fB\-\-use\-set\-session\-authorization\fR .RS 4 خروجی دادن دستورهای استاندارد SQL شامل \fBSET SESSION AUTHORIZATION\fR به جای دستورهای \fBALTER OWNER\fR برای تعیین مالکیت اشیاء\&. این امر دامپ را با استانداردها سازگارتر می‌کند، اما بسته به تاریخچه اشیاء موجود در دامپ، ممکن است بازیابی به‌درستی صورت نگیرد\&. .RE .PP \fB\-?\fR .br \fB\-\-help\fR .RS 4 نمایش راهنما درباره آرگومان‌های خط فرمان pg_dumpall و خروج\&. .RE .PP گزینه‌های خط فرمان زیر پارامترهای اتصال به پایگاه داده را کنترل می‌کنند\&. .PP \fB\-d \fR\fB\fIconnstr\fR\fR .br \fB\-\-dbname=\fR\fB\fIconnstr\fR\fR .RS 4 پارامترهای مورد استفاده برای اتصال به سرور را در قالب یک رشته اتصال (connection string) مشخص می‌کند؛ این پارامترها بر هر گزینه خط فرمان دیگری که دارای تداخل باشد اولویت خواهند داشت\&. .sp این گزینه برای سازگاری با سایر برنامه‌های کلاینت، \-\-dbname نامیده شده است، اما از آنجا که pg_dumpall باید به چندین پایگاه داده متصل شود، نام پایگاه داده موجود در رشته اتصال نادیده گرفته خواهد شد\&. از گزینه \-l برای تعیین نام پایگاه داده مورد استفاده در اتصال اولیه استفاده کنید؛ اتصالی که اشیاء سراسری را استخراج کرده و مشخص می‌کند چه پایگاه‌های داده دیگری باید استخراج شوند\&. .RE .PP \fB\-h \fR\fB\fIhost\fR\fR .br \fB\-\-host=\fR\fB\fIhost\fR\fR .RS 4 نام میزبان ماشینی را که سرور پایگاه داده روی آن در حال اجرا است مشخص می‌کند\&. اگر این مقدار با یک اسلش آغاز شود، به عنوان دایرکتوری سوکت دامنه یونیکس (Unix domain socket) استفاده خواهد شد\&. مقدار پیش‌فرض از متغیر محیطی \fBPGHOST\fR (در صورت تنظیم بودن) گرفته می‌شود، در غیر این صورت برای برقراری اتصال از طریق سوکت دامنه یونیکس تلاش خواهد شد\&. .RE .PP \fB\-l \fR\fB\fIdbname\fR\fR .br \fB\-\-database=\fR\fB\fIdbname\fR\fR .RS 4 نام پایگاه داده‌ای را برای اتصال اولیه جهت استخراج اشیاء سراسری و تشخیص اینکه چه پایگاه‌های داده دیگری باید استخراج شوند مشخص می‌کند\&. در صورت عدم تعیین، پایگاه داده postgres مورد استفاده قرار می‌گیرد و اگر آن نیز وجود نداشته باشد، از template1 استفاده خواهد شد\&. .RE .PP \fB\-p \fR\fB\fIport\fR\fR .br \fB\-\-port=\fR\fB\fIport\fR\fR .RS 4 پورت TCP یا پسوند فایل سوکت دامنه یونیکس محلی را که سرور روی آن منتظر دریافت اتصال است مشخص می‌کند\&. مقدار پیش‌فرض از متغیر محیطی \fBPGPORT\fR (در صورت تنظیم بودن) یا مقدار پیش‌فرض زمان کامپایل گرفته می‌شود\&. .RE .PP \fB\-U \fR\fB\fIusername\fR\fR .br \fB\-\-username=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری برای اتصال\&. .RE .PP \fB\-w\fR .br \fB\-\-no\-password\fR .RS 4 هرگز درخواست گذرواژه نمایش داده نشود\&. اگر سرور نیازمند احراز هویت با گذرواژه باشد و گذرواژه از راه‌های دیگری مانند فایل \&.pgpass در دسترس نباشد، تلاش برای برقراری اتصال ناموفق خواهد بود\&. این گزینه در کارهای دسته‌ای (batch jobs) و اسکریپت‌هایی که هیچ کاربری برای وارد کردن گذرواژه حضور ندارد، می‌تواند مفید باشد\&. .RE .PP \fB\-W\fR .br \fB\-\-password\fR .RS 4 اجبار pg_dumpall به درخواست گذرواژه پیش از اتصال به یک پایگاه داده\&. .sp این گزینه هرگز ضروری نیست، چرا که اگر سرور احراز هویت با گذرواژه را الزام کند، pg_dumpall به‌طور خودکار درخواست گذرواژه خواهد داد\&. با این حال، pg_dumpall یک تلاش برای اتصال را فقط برای پی بردن به اینکه سرور گذرواژه می‌خواهد تلف خواهد کرد\&. در برخی موارد، استفاده از \fB\-W\fR برای جلوگیری از این تلاش اضافی اتصال ارزشش را دارد\&. .sp توجه داشته باشید که درخواست گذرواژه برای هر پایگاه داده‌ای که قرار است استخراج شود دوباره تکرار خواهد شد\&. معمولاً تنظیم یک فایل ~/\&.pgpass بهتر از اتکا به وارد کردن دستی گذرواژه است\&. .RE .PP \fB\-\-role=\fR\fB\fIrolename\fR\fR .RS 4 نام نقشی را که باید برای ایجاد دامپ استفاده شود مشخص می‌کند\&. این گزینه باعث می‌شود pg_dumpall پس از اتصال به پایگاه داده، دستور \fBSET ROLE\fR \fIrolename\fR را صادر کند\&. این ویژگی زمانی مفید است که کاربر احراز هویت شده (مشخص‌شده توسط \fB\-U\fR) فاقد اختیارات لازم برای pg_dumpall است، اما می‌تواند به نقشی با اختیارات مورد نیاز تغییر وضعیت دهد\&. در برخی سیستم‌ها سیاستی مبنی بر عدم ورود مستقیم به عنوان مدیر سیستم (superuser) وجود دارد و استفاده از این گزینه امکان تهیه نسخه پشتیبان را بدون نقض این سیاست فراهم می‌کند\&. .RE.SH "محیط (ENVIRONMENT)" .PP \fBPGHOST\fR .br \fBPGOPTIONS\fR .br \fBPGPORT\fR .br \fBPGUSER\fR .RS 4 پارامترهای اتصال پیش‌فرض .RE .PP \fBPG_COLOR\fR .RS 4 مشخص می‌کند که آیا در پیام‌های عیب‌یابی از رنگ استفاده شود یا خیر\&. مقادیر ممکن عبارتند از always، auto و never\&. .RE .PP این ابزار نیز، مانند بیشتر ابزارهای دیگر PostgreSQL، از متغیرهای محیطی پشتیبانی‌شده توسط libpq استفاده می‌کند (بخش\ \&32.15 را ببینید)\&. .SH "نکات (NOTES)" .PP از آنجا که pg_dumpall به صورت داخلی pg_dump را فراخوانی می‌کند، برخی پیام‌های عیب‌یابی به pg_dump ارجاع خواهند داد\&. .PP گزینهٔ \fB\-\-clean\fR می‌تواند حتی زمانی که قصد دارید اسکریپت پشتیبان را در یک کلاستر جدید بازیابی کنید نیز مفید باشد\&. استفاده از \fB\-\-clean\fR به اسکریپت اجازه می‌دهد پایگاه‌های دادهٔ توکار postgres و template1 را حذف و دوباره ایجاد کند، که تضمین می‌کند آن پایگاه‌های داده همان ویژگی‌هایی (مانند locale و encoding) را که در کلاستر مبدأ داشتند حفظ خواهند کرد\&. بدون این گزینه، آن پایگاه‌های داده ویژگی‌های سطح پایگاه دادهٔ موجود و همچنین محتویات از پیش موجود خود را حفظ خواهند کرد\&. .PP هنگامی که \fB\-\-statistics\fR مشخص شود، \fBpg_dumpall\fR بیشتر آمارهای بهینه‌ساز را در فایل پشتیبان حاصل خواهد گنجاند\&. این شامل همهٔ آمارها نمی‌شود، مانند آمارهایی که صراحتاً با CREATE STATISTICS (\fBCREATE_STATISTICS\fR(7)) ایجاد شده‌اند، آمارهای سفارشی اضافه‌شده توسط یک افزونه، یا آمارهای جمع‌آوری‌شده توسط سامانهٔ آمار تجمعی\&. بنابراین، ممکن است برای اطمینان از عملکرد بهینه، همچنان اجرای \fBANALYZE\fR روی هر پایگاه داده پس از بازیابی از یک فایل پشتیبان مفید باشد\&. همچنین می‌توانید برای تحلیل همهٔ پایگاه‌های داده، \fBvacuumdb \-a \-z\fR را اجرا کنید\&. .PP نباید انتظار داشت که اسکریپت پشتیبان کاملاً بدون خطا اجرا شود\&. به‌ویژه، از آنجا که اسکریپت برای هر نقش موجود در کلاستر مبدأ دستور \fBCREATE ROLE\fR را صادر می‌کند، حتماً با خطای \(lqrole already exists\(rq برای کاربر ارشد راه‌انداز (bootstrap superuser) مواجه خواهد شد، مگر اینکه کلاستر مقصد با نام متفاوتی برای کاربر ارشد راه‌انداز مقداردهی اولیه شده باشد\&. این خطا بی‌ضرر است و باید نادیده گرفته شود\&. استفاده از گزینهٔ \fB\-\-clean\fR احتمالاً پیام‌های خطای بی‌ضرر دیگری دربارهٔ اشیاء ناموجود تولید می‌کند، اگرچه می‌توانید با افزودن \fB\-\-if\-exists\fR آن‌ها را به حداقل برسانید\&. .PP دستور pg_dumpall نیازمند این است که تمام دایرکتوری‌های tablespace مورد نیاز پیش از بازیابی وجود داشته باشند؛ در غیر این صورت، ایجاد پایگاه داده برای پایگاه‌های داده در مکان‌های غیرپیش‌فرض با شکست مواجه خواهد شد\&. .PP به‌طور کلی توصیه می‌شود هنگام بازیابی یک پایگاه داده از اسکریپت pg_dumpall، از گزینهٔ \fB\-X\fR (\fB\-\-no\-psqlrc\fR) استفاده کنید تا از یک فرایند بازیابی بی‌نقص اطمینان حاصل شده و از تداخل‌های احتمالی با پیکربندی‌های غیرپیش‌فرض psql جلوگیری شود\&. علاوه بر این، از آنجا که ممکن است اسکریپت pg_dumpall شامل فرادستورهای psql باشد، ممکن است با کلاینت‌هایی به جز psql ناسازگار باشد\&. .SH "مثال‌ها (EXAMPLES)" .PP برای پشتیبان‌گیری از تمام پایگاه‌های داده: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dumpall > db\&.out\fR .fi .if n \{\ .RE .\} .PP برای بازیابی پایگاه(های) داده از این فایل، می‌توانید استفاده کنید از: .sp .if n \{\ .RS 4 .\} .nf $ \fBpsql \-X \-f db\&.out \-d postgres\fR .fi .if n \{\ .RE .\} .sp در اینجا اهمیتی ندارد که به کدام پایگاه داده متصل می‌شوید، زیرا فایل اسکریپت ایجادشده توسط pg_dumpall شامل دستورات مناسب برای ساخت و اتصال به پایگاه‌های دادهٔ ذخیره‌شده خواهد بود\&. یک استثنا این است که اگر \fB\-\-clean\fR را مشخص کرده باشید، در ابتدا باید به پایگاه دادهٔ postgres متصل شوید؛ زیرا اسکریپت بلافاصله تلاش خواهد کرد سایر پایگاه‌های داده را حذف کند، و این عمل برای پایگاه داده‌ای که هم‌اکنون به آن متصل هستید ناموفق خواهد بود\&. .SH "همچنین ببینید (SEE ALSO)" .PP برای جزئیات مربوط به شرایط خطای احتمالی، \fBpg_dump\fR(1) را بررسی کنید\&.