'\" t .\" Title: pg_dump .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026 .\" Manual: PostgreSQL 18.6 Documentation .\" Source: PostgreSQL 18.6 .\" Language: English .\" .TH "PG_DUMP" "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_dump \- برون‌بری یک پایگاه داده PostgreSQL در قالب اسکریپت SQL یا فرمت‌های دیگر .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBpg_dump\fR\ 'u \fBpg_dump\fR [\fIconnection\-option\fR...] [\fIoption\fR...] [\fIdbname\fR] .SH "توضیحات (DESCRIPTION)" .PP pg_dump ابزاری برای برون‌بری یک پایگاه داده PostgreSQL است\&. این ابزار حتی در صورت استفاده هم‌زمان از پایگاه داده، خروجی‌های سازگار و یکدستی ایجاد می‌کند\&. pg_dump مانع دسترسی سایر کاربران به پایگاه داده نمی‌شود (نه خوانندگان و نه نویسندگان)\&. با این حال، توجه داشته باشید که به جز در موارد ساده، pg_dump عموماً انتخاب مناسبی برای تهیه منظم نسخه‌های پشتیبان از پایگاه‌های داده عملیاتی (production) نیست\&. برای توضیحات بیشتر به Chapter\ \&25 مراجعه کنید\&. .PP pg_dump تنها از یک پایگاه داده نسخه پشتیبان تهیه می‌کند\&. برای برون‌بری کل یک کلاستر، یا برون‌بری اشیاء سراسری (global) که میان تمام پایگاه‌های داده یک کلاستر مشترک هستند (مانند نقش‌ها و tablespaceها)، از \fBpg_dumpall\fR(1)\& استفاده کنید\&. .PP خروجی‌ها را می‌توان در قالب فایل اسکریپت یا فایل‌های بایگانی (archive) ذخیره کرد\&. نسخه‌های اسکریپتی، فایل‌های متنی ساده‌ای (plain\-text) هستند که شامل دستورات SQL لازم برای بازسازی پایگاه داده به وضعیتی که در زمان ذخیره‌سازی داشته است می‌باشند\&. برای بازیابی از چنین اسکریپتی، آن را به \fBpsql\fR(1)\& ارسال کنید\&. فایل‌های اسکریپت را می‌توان برای بازسازی پایگاه داده حتی روی ماشین‌های دیگر و با معماری‌های متفاوت به کار گرفت؛ و با اعمال برخی تغییرات، حتی روی سایر سیستم‌های پایگاه داده مبتنی بر SQL قابل استفاده هستند\&. .PP فرمت‌های جایگزین فایل بایگانی باید به همراه \fBpg_restore\fR(1) برای بازسازی پایگاه داده استفاده شوند\&. آن‌ها به pg_restore اجازه می‌دهند تا در مورد آنچه بازیابی می‌شود گزینشی عمل کند، یا حتی ترتیب بازیابی آیتم‌ها را پیش از اجرا تغییر دهد\&. فرمت‌های فایل بایگانی به‌گونه‌ای طراحی شده‌اند که بین معماری‌های مختلف سازگار و قابل‌حمل باشند\&. .PP هنگام استفاده با یکی از فرمت‌های فایل بایگانی و ترکیب با pg_restore، ابزار pg_dump یک سازوکار بایگانی و انتقال منعطف را فراهم می‌آورد\&. pg_dump می‌تواند برای برون‌بری یک پایگاه داده کامل استفاده شود، سپس pg_restore می‌تواند برای بررسی بایگانی و/یا انتخاب این‌که کدام بخش‌های پایگاه داده باید بازیابی شوند مورد استفاده قرار گیرد\&. منعطف‌ترین فرمت‌های فایل خروجی، فرمت \(lqcustom\(rq (\fB\-Fc\fR) و فرمت \(lqdirectory\(rq (\fB\-Fd\fR) هستند\&. آن‌ها امکان انتخاب و تغییر ترتیب تمام آیتم‌های بایگانی‌شده را فراهم می‌سازند، از بازیابی موازی پشتیبانی می‌کنند و به‌طور پیش‌فرض فشرده هستند\&. فرمت \(lqdirectory\(rq تنها فرمتی است که از برون‌بری موازی (parallel dumps) پشتیبانی می‌کند\&. .PP هنگام اجرای pg_dump، باید خروجی را برای هرگونه هشدار (چاپ‌شده در خطای استاندارد) بررسی کرد، به‌ویژه با در نظر گرفتن محدودیت‌های ذکر شده در زیر\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .PP بازیابی یک نسخه پشتیبان باعث می‌شود مقصد، کدهای دلخواه انتخابی مدیران سیستم (superusers) مبدأ را اجرا کند\&. برون‌بری‌های جزئی و بازیابی‌های جزئی این موضوع را محدود نمی‌کنند\&. اگر مدیران سیستم (superusers) مبدأ مورد اعتماد نباشند، دستورات SQL استخراج‌شده باید پیش از بازیابی بازبینی شوند\&. نسخه‌های پشتیبان غیرمتنی را می‌توان با استفاده از گزینه \fB\-\-file\fR در pg_restore بررسی کرد\&. توجه داشته باشید کلاینتی که dump و restore را اجرا می‌کند نیازی به اعتماد به مدیران سیستم (superusers) مبدأ یا مقصد ندارد\&. .sp .5v .RE.SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های خط فرمان زیر محتوا و قالب خروجی را کنترل می‌کنند\&. .PP \fIdbname\fR .RS 4 نام پایگاه داده‌ای که باید رونوشت گرفته شود را مشخص می‌کند\&. اگر مشخص نشود، از متغیر محیطی \fBPGDATABASE\fR استفاده می‌شود\&. اگر آن هم تنظیم نشده باشد، از نام کاربری مشخص‌شده برای اتصال استفاده خواهد شد\&. .RE .PP \fB\-a\fR .br \fB\-\-data\-only\fR .RS 4 تنها از داده‌ها رونوشت می‌گیرد، نه از طرح‌واره (تعاریف داده) یا آمارها\&. داده‌های جدول، اشیاء بزرگ (large objects)، و مقادیر دنباله (sequence) استخراج می‌شوند\&. .sp این گزینه مشابه، اما به دلایل تاریخی نه دقیقاً یکسان با، مشخص کردن \fB\-\-section=data\fR است\&. .RE .PP \fB\-b\fR .br \fB\-\-large\-objects\fR .br \fB\-\-blobs\fR (منسوخ‌شده) .RS 4 اشیاء بزرگ را در رونوشت می‌گنجاند\&. این رفتار پیش‌فرض است مگر هنگامی که \fB\-\-schema\fR، \fB\-\-table\fR، \fB\-\-schema\-only\fR، \fB\-\-statistics\-only\fR، یا \fB\-\-no\-data\fR مشخص شده باشد\&. بنابراین سوییچ \fB\-b\fR تنها زمانی مفید است که بخواهید اشیاء بزرگ را به رونوشت‌هایی بیفزایید که یک طرح‌واره یا جدول خاص درخواست شده است\&. توجه داشته باشید که اشیاء بزرگ جزو داده‌ها محسوب می‌شوند و در نتیجه هنگامی که \fB\-\-data\-only\fR به کار می‌رود گنجانده می‌شوند، اما هنگامی که \fB\-\-schema\-only\fR یا \fB\-\-statistics\-only\fR استفاده شود، خیر\&. .RE .PP \fB\-B\fR .br \fB\-\-no\-large\-objects\fR .br \fB\-\-no\-blobs\fR (منسوخ‌شده) .RS 4 اشیاء بزرگ را از خروجی رونوشت مستثنی می‌کند\&. .sp هنگامی که هر دو گزینهٔ \fB\-b\fR و \fB\-B\fR داده شوند، رفتار برنامه خروجی دادن اشیاء بزرگ است، در صورتی که داده‌ها در حال رونوشت‌گیری باشند؛ به مستندات \fB\-b\fR مراجعه کنید\&. .RE .PP \fB\-c\fR .br \fB\-\-clean\fR .RS 4 دستوراتی صادر می‌کند تا قبل از دستورات ساخت، تمام اشیاء پایگاه دادهٔ استخراج‌شده با \fBDROP\fR حذف شوند\&. این گزینه زمانی مفید است که بازیابی قرار باشد روی یک پایگاه دادهٔ موجود بازنویسی شود\&. اگر هر یک از اشیاء در پایگاه دادهٔ مقصد وجود نداشته باشند، در طول بازیابی پیام‌های خطای قابل چشم‌پوشی گزارش می‌شوند، مگر آن‌که \fB\-\-if\-exists\fR نیز مشخص شده باشد\&. .sp این گزینه هنگام تولید یک فایل خروجی آرشیو (غیرمتنی) نادیده گرفته می‌شود\&. برای قالب‌های آرشیو، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR مشخص کنید\&. .RE .PP \fB\-C\fR .br \fB\-\-create\fR .RS 4 خروجی را با دستوری برای ایجاد خود پایگاه داده و اتصال مجدد به پایگاه دادهٔ ایجادشده آغاز می‌کند\&. (با اسکریپتی به این شکل، تفاوتی نمی‌کند قبل از اجرای اسکریپت به کدام پایگاه داده در سامانهٔ مقصد متصل شوید\&.) اگر \fB\-\-clean\fR نیز مشخص شده باشد، اسکریپت پیش از اتصال مجدد به پایگاه دادهٔ هدف، آن را حذف و دوباره ایجاد می‌کند\&. .sp با \fB\-\-create\fR، خروجی همچنین شامل یادداشت (comment) پایگاه داده در صورت وجود، و هرگونه تنظیمات متغیرهای پیکربندی مختص به این پایگاه داده خواهد بود؛ یعنی تمام دستورهای \fBALTER DATABASE \&.\&.\&. SET \&.\&.\&.\fR و \fBALTER ROLE \&.\&.\&. IN DATABASE \&.\&.\&. SET \&.\&.\&.\fR که به این پایگاه داده اشاره دارند\&. مجوزهای دسترسی برای خود پایگاه داده نیز استخراج می‌شوند، مگر اینکه \fB\-\-no\-acl\fR مشخص شده باشد\&. .sp این گزینه هنگام تولید فایل خروجی آرشیو (غیرمتنی) نادیده گرفته می‌شود\&. برای قالب‌های آرشیو، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR مشخص کنید\&. .RE .PP \fB\-e \fR\fB\fIpattern\fR\fR .br \fB\-\-extension=\fR\fB\fIpattern\fR\fR .RS 4 تنها افزونه‌های منطبق با \fIpattern\fR را در خروجی رونوشت می‌آورد\&. هنگامی که این گزینه مشخص نشده باشد، تمام افزونه‌های غیرسیستمی در پایگاه دادهٔ هدف استخراج می‌شوند\&. با نوشتن چندین سوییچ \fB\-e\fR می‌توان چندین افزونه را انتخاب کرد\&. پارامتر \fIpattern\fR مطابق با همان قواعدی که دستورات \ed در psql به کار می‌برند (بخش الگوها / Patterns را ببینید) به عنوان الگو تفسیر می‌شود، بنابراین می‌توان با نوشتن نویسه‌های عام (wildcard) در الگو، چندین افزونه را نیز انتخاب کرد\&. هنگام استفاده از نویسه‌های عام، دقت کنید که در صورت نیاز الگو را درون نقل‌قول قرار دهید تا پوسته نویسه‌های عام را بسط ندهد\&. .sp هر رابطهٔ پیکربندی ثبت‌شده توسط \fBpg_extension_config_dump\fR، اگر افزونهٔ آن توسط \fB\-\-extension\fR مشخص شده باشد، در رونوشت گنجانده می‌شود\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br هنگامی که \fB\-e\fR مشخص می‌شود، pg_dump هیچ تلاشی برای استخراج سایر اشیاء پایگاه داده که افزونه(های) انتخاب‌شده ممکن است به آن‌ها وابسته باشند نمی‌کند\&. از این رو، هیچ تضمینی وجود ندارد که نتایج یک رونوشتِ افزونه-خاص بتواند به تنهایی با موفقیت در یک پایگاه دادهٔ پاک بازیابی شود\&. .sp .5v .RE .RE .PP \fB\-E \fR\fB\fIencoding\fR\fR .br \fB\-\-encoding=\fR\fB\fIencoding\fR\fR .RS 4 رونوشت را با کدگذاری مجموعه نویسهٔ (character set encoding) مشخص‌شده ایجاد می‌کند\&. به طور پیش‌فرض، رونوشت در کدگذاری پایگاه داده ایجاد می‌شود\&. (راه دیگر برای دستیابی به همین نتیجه، تنظیم متغیر محیطی \fBPGCLIENTENCODING\fR روی کدگذاری مورد نظر برای رونوشت است\&.) کدگذاری‌های پشتیبانی‌شده در بخش\ \&23.3.1 شرح داده شده‌اند\&. .RE .PP \fB\-f \fR\fB\fIfile\fR\fR .br \fB\-\-file=\fR\fB\fIfile\fR\fR .RS 4 خروجی را به فایل مشخص‌شده می‌فرستد\&. این پارامتر می‌تواند برای قالب‌های خروجی مبتنی بر فایل حذف شود، که در این حالت از خروجی استاندارد استفاده می‌شود\&. اما برای قالب خروجی دایرکتوری باید حتماً مشخص شود، جایی که به جای فایل، دایرکتوری مقصد را معین می‌کند\&. در این حالت دایرکتوری توسط \fBpg_dump\fR ایجاد می‌شود و نباید از قبل وجود داشته باشد\&. .RE .PP \fB\-F \fR\fB\fIformat\fR\fR .br \fB\-\-format=\fR\fB\fIformat\fR\fR .RS 4 قالب خروجی را انتخاب می‌کند\&. \fIformat\fR می‌تواند یکی از موارد زیر باشد: .PP p .br plain .RS 4 یک فایل اسکریپت SQL متن ساده (پیش‌فرض) خروجی می‌دهد\&. .RE .PP c .br custom .RS 4 یک آرشیو با قالب سفارشی مناسب برای ورودی به pg_restore خروجی می‌دهد\&. در کنار قالب خروجی دایرکتوری، این قالب انعطاف‌پذیرترین قالب خروجی است چرا که امکان انتخاب دستی و تغییر ترتیب موارد آرشیو شده را هنگام بازیابی فراهم می‌کند\&. این قالب همچنین به طور پیش‌فرض فشرده‌سازی می‌شود\&. .RE .PP d .br directory .RS 4 یک آرشیو با قالب دایرکتوری مناسب برای ورودی به pg_restore خروجی می‌دهد\&. این گزینه دایرکتوری‌ای ایجاد می‌کند که شامل یک فایل برای هر جدول و شیء بزرگ استخراج‌شده است، به علاوه فایلی موسوم به فهرست مطالب (Table of Contents) که اشیاء استخراج‌شده را در قالبی ماشین‌خوان که pg_restore بتواند بخواند شرح می‌دهد\&. یک آرشیو با قالب دایرکتوری را می‌توان با ابزارهای استاندارد یونیکس دستکاری کرد؛ به عنوان مثال، فایل‌ها در یک آرشیو غیرفشرده را می‌توان با ابزارهای gzip، lz4، یا zstd فشرده کرد\&. این قالب به طور پیش‌فرض با استفاده از gzip فشرده‌سازی می‌شود و همچنین از رونوشت‌گیری موازی پشتیبانی می‌کند\&. .RE.PP t .br tar .RS 4 یک بایگانی در قالب \fBtar\fR تولید می‌کند که برای ورودی به pg_restore مناسب است\&. قالب tar با قالب دایرکتوری سازگار است: استخراج یک بایگانی با قالب tar یک بایگانی معتبر در قالب دایرکتوری تولید می‌کند\&. با این حال، قالب tar از فشرده‌سازی پشتیبانی نمی‌کند\&. همچنین، هنگام استفاده از قالب tar، ترتیب نسبی داده‌های جداول را نمی‌توان در طول بازیابی تغییر داد\&. .RE .RE .PP \fB\-j \fR\fB\fInjobs\fR\fR .br \fB\-\-jobs=\fR\fB\fInjobs\fR\fR .RS 4 اجرای موازی dump با پشتیبان‌گیری هم‌زمان از \fInjobs\fR جدول\&. این گزینه ممکن است زمان مورد نیاز برای انجام dump را کاهش دهد، اما بار کاری روی سرور پایگاه داده را نیز افزایش می‌دهد\&. شما فقط می‌توانید از این گزینه با قالب خروجی دایرکتوری استفاده کنید، زیرا این تنها قالب خروجی است که چند فرآیند می‌توانند به طور هم‌زمان داده‌های خود را در آن بنویسند\&. .sp دستور pg_dump به تعداد \fInjobs\fR + 1 اتصال به پایگاه داده باز خواهد کرد، بنابراین اطمینان حاصل کنید که تنظیم max_connections شما به اندازه کافی بالا باشد تا بتواند پاسخگوی تمام اتصالات باشد\&. .sp درخواست قفل‌های انحصاری بر روی اشیاء پایگاه داده هنگام اجرای یک dump موازی می‌تواند باعث شکست dump شود\&. دلیل آن این است که فرآیند راهبر (leader) در pg_dump قفل‌های اشتراکی (ACCESS SHARE) را بر روی اشیایی که فرآیندهای کارگر (worker) قرار است بعداً از آن‌ها dump بگیرند درخواست می‌کند تا مطمئن شود هیچ‌کس آن‌ها را در حین اجرای dump حذف نکرده یا از بین نمی‌برد\&. اگر سپس یک کلاینت دیگر درخواست قفل انحصاری روی یک جدول داشته باشد، آن قفل اعطا نخواهد شد اما در صف انتظار برای آزادسازی قفل اشتراکی فرآیند راهبر منتظر خواهد ماند\&. در نتیجه، به هیچ دسترسی دیگری به جدول نیز اجازه داده نخواهد شد و پس از درخواست قفل انحصاری در صف قرار می‌گیرد\&. این شامل فرآیند کارگری که تلاش می‌کند از جدول dump بگیرد نیز می‌شود\&. بدون هیچ تدبیری، این یک وضعیت کلاسیک بن‌بست (deadlock) خواهد بود\&. برای تشخیص این تداخل، فرآیند کارگر pg_dump با استفاده از گزینه NOWAIT درخواست یک قفل اشتراکی دیگر می‌دهد\&. اگر به فرآیند کارگر این قفل اشتراکی داده نشود، شخص دیگری باید در این میان قفل انحصاری درخواست کرده باشد و هیچ راهی برای ادامه dump وجود ندارد، بنابراین pg_dump چاره‌ای جز لغو عملیات dump ندارد\&. .sp برای انجام یک dump موازی، سرور پایگاه داده باید از نماهای لحظه‌ای همگام‌سازی‌شده (synchronized snapshots) پشتیبانی کند؛ قابلیتی که در PostgreSQL نسخه 9\&.2 برای سرورهای اصلی (primary) و نسخه 10 برای سرورهای آماده‌باش (standby) معرفی شد\&. با این ویژگی، کلاینت‌های پایگاه داده می‌توانند اطمینان حاصل کنند که مجموعه داده‌های یکسانی را می‌بینند، حتی اگر از اتصالات متفاوتی استفاده کنند\&. \fBpg_dump \-j\fR از چندین اتصال پایگاه داده استفاده می‌کند؛ یک بار با فرآیند راهبر و یک بار دیگر برای هر کارگر (worker job) به پایگاه داده متصل می‌شود\&. بدون ویژگی نماهای لحظه‌ای همگام‌سازی‌شده، تضمین نمی‌شود که کارهای کارگر مختلف داده‌های یکسانی را در هر اتصال مشاهده کنند، که می‌تواند منجر به یک پشتیبان‌گیری ناسازگار شود\&. .RE .PP \fB\-n \fR\fB\fIpattern\fR\fR .br \fB\-\-schema=\fR\fB\fIpattern\fR\fR .RS 4 تنها از اسکیمای منطبق با \fIpattern\fR dump می‌گیرد؛ این گزینه هم خود اسکیما و هم تمام اشیاء درون آن را انتخاب می‌کند\&. در صورتی که این گزینه مشخص نشده باشد، از تمام اسکیمای غیرسیستمی در پایگاه داده هدف پشتیبان‌گیری خواهد شد\&. با نوشتن چندین سوئیچ \fB\-n\fR می‌توان چندین اسکیما را انتخاب کرد\&. پارامتر \fIpattern\fR مطابق با همان قواعدی که توسط دستورات \ed در psql استفاده می‌شود (به بخش Patterns مراجعه کنید) به عنوان الگو تفسیر می‌شود؛ بنابراین می‌توان با نوشتن نویسه‌های عام (wildcard) در الگو، چندین اسکیما را نیز انتخاب کرد\&. هنگام استفاده از نویسه‌های عام، دقت کنید که در صورت نیاز الگو را درون نقل‌قول قرار دهید تا از بسط نویسه‌های عام توسط شل جلوگیری شود؛ به بخش Examples در زیر مراجعه کنید\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br هنگامی که \fB\-n\fR مشخص می‌شود، pg_dump هیچ تلاشی برای گرفتن dump از سایر اشیاء پایگاه داده که اسکیما(های) انتخاب‌شده ممکن است به آن‌ها وابسته باشند انجام نمی‌دهد\&. بنابراین، تضمینی وجود ندارد که نتایج یک dump مربوط به اسکیمایی خاص بتواند به تنهایی در یک پایگاه داده تمیز با موفقیت بازیابی شود\&. .sp .5v .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br اشیای غیر اسکیما مانند large objects هنگامی که \fB\-n\fR مشخص شده باشد dump نمی‌شوند\&. با استفاده از سوئیچ \fB\-\-large\-objects\fR می‌توانید large objects را دوباره به dump اضافه کنید\&. .sp .5v .RE .RE .PP \fB\-N \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-schema=\fR\fB\fIpattern\fR\fR .RS 4 از هیچ اسکیمایی که با \fIpattern\fR مطابقت داشته باشد dump نمی‌گیرد\&. الگو طبق همان قواعد مربوط به \fB\-n\fR تفسیر می‌شود\&. سوئیچ \fB\-N\fR می‌تواند بیش از یک بار مشخص شود تا اسکیمای منطبق با هر یک از الگوهای مشخص‌شده مستثنی گردند\&. .sp هنگامی که هر دوی \fB\-n\fR و \fB\-N\fR داده شوند، رفتار بدین صورت است که فقط از اسکیمایی dump گرفته می‌شود که حداقل با یکی از سوئیچ‌های \fB\-n\fR مطابقت داشته باشد و با هیچ‌یک از سوئیچ‌های \fB\-N\fR مطابقت نداشته باشد\&. اگر \fB\-N\fR بدون \fB\-n\fR بیاید، در آن صورت اسکیمای منطبق بر \fB\-N\fR از آنچه که در حالت عادی یک dump معمولی است، مستثنی می‌شوند\&. .RE .PP \fB\-O\fR .br \fB\-\-no\-owner\fR .RS 4 دستورات مربوط به تنظیم مالکیت اشیاء مطابق با پایگاه داده اصلی را در خروجی نمی‌آورد\&. به طور پیش‌فرض، pg_dump دستورات \fBALTER OWNER\fR یا \fBSET SESSION AUTHORIZATION\fR را برای تخصیص مالکیت اشیاء ایجادشده در پایگاه داده صادر می‌کند\&. این دستورات هنگام اجرای اسکریپت با شکست مواجه خواهند شد مگر اینکه توسط یک کاربر ریشه/مدیر سیستم (یا همان کاربری که مالک تمامی اشیاء در اسکریپت است) اجرا شود\&. برای ایجاد اسکریپتی که توسط هر کاربری قابل بازیابی باشد، اما مالکیت تمام اشیاء را به همان کاربر بدهد، \fB\-O\fR را مشخص کنید\&. .sp این گزینه هنگام صدور یک فایل خروجی بایگانی (غیر متنی) نادیده گرفته می‌شود\&. برای قالب‌های بایگانی، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR تعیین کنید\&. .RE .PP \fB\-R\fR .br \fB\-\-no\-reconnect\fR .RS 4 این گزینه منسوخ شده است اما هنوز به منظور سازگاری رو به عقب پذیرفته می‌شود\&. .RE .PP \fB\-s\fR .br \fB\-\-schema\-only\fR .RS 4 تنها تعاریف اشیاء (اسکیما) را dump می‌کند، نه داده‌ها یا آمارها را\&. .sp این گزینه نمی‌تواند همراه با \fB\-\-data\-only\fR یا \fB\-\-statistics\-only\fR استفاده شود\&. این گزینه مشابه تعیین \fB\-\-section=pre\-data \-\-section=post\-data\fR است، هرچند بنا به دلایل تاریخی دقیقاً با آن یکسان نیست\&. .sp (این گزینه را با گزینه \fB\-\-schema\fR که از واژه \(lqschema\(rq به معنایی متفاوت استفاده می‌کند اشتباه نگیرید\&.) .sp برای مستثنی کردن داده‌های جدول تنها برای زیرمجموعه‌ای از جداول در پایگاه داده، به \fB\-\-exclude\-table\-data\fR مراجعه کنید\&. .RE .PP \fB\-S \fR\fB\fIusername\fR\fR .br \fB\-\-superuser=\fR\fB\fIusername\fR\fR .RS 4 نام کاربری مدیر سیستم (superuser) را برای استفاده هنگام غیرفعال‌سازی تریگرها مشخص می‌کند\&. این گزینه فقط در صورتی کاربرد دارد که از \fB\-\-disable\-triggers\fR استفاده شده باشد\&. (معمولاً بهتر است این گزینه نادیده گرفته شود و در عوض اسکریپت حاصل به عنوان مدیر سیستم اجرا گردد\&.) .RE .PP \fB\-t \fR\fB\fIpattern\fR\fR .br \fB\-\-table=\fR\fB\fIpattern\fR\fR .RS 4 تنها از جدول‌هایی با نام‌های منطبق بر \fIpattern\fR dump می‌گیرد\&. با نوشتن چندین سوئیچ \fB\-t\fR می‌توان چندین جدول را انتخاب کرد\&. پارامتر \fIpattern\fR مطابق با همان قوانینی که توسط دستورات \ed در psql استفاده می‌شود (به بخش Patterns مراجعه کنید) به عنوان یک الگو تفسیر می‌گردد؛ بنابراین می‌توان با درج نویسه‌های عام در الگو نیز چندین جدول را انتخاب کرد\&. هنگام استفاده از نویسه‌های عام، دقت کنید که در صورت نیاز الگو را درون نقل‌قول قرار دهید تا از بسط نویسه‌های عام توسط شل جلوگیری شود؛ به بخش Examples در زیر مراجعه کنید\&..sp علاوه بر جدول‌ها، این گزینه می‌تواند برای استخراج تعریف نماها، نماهای مادی‌شده، جدول‌های خارجی و توالی‌های منطبق به کار رود\&. این گزینه محتوای نماها یا نماهای مادی‌شده را استخراج نمی‌کند و محتوای جدول‌های خارجی تنها در صورتی استخراج می‌شود که سرور خارجی متناظر با \fB\-\-include\-foreign\-data\fR مشخص شده باشد\&. .sp سوئیچ‌های \fB\-n\fR و \fB\-N\fR هنگام استفاده از \fB\-t\fR هیچ تاثیری ندارند، زیرا جدول‌های انتخاب‌شده با \fB\-t\fR صرف‌نظر از آن سوئیچ‌ها استخراج خواهند شد و اشیاء غیرجدولی استخراج نخواهند شد\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br هنگامی که \fB\-t\fR مشخص می‌شود، pg_dump هیچ تلاشی برای استخراج اشیاء پایگاه داده دیگری که جدول(های) انتخاب‌شده ممکن است به آن‌ها وابسته باشند نمی‌کند\&. بنابراین، هیچ تضمینی وجود ندارد که نتایج یک استخراج مختص به جدول بتواند به تنهایی در یک پایگاه داده تمیز با موفقیت بازیابی شود\&. .sp .5v .RE .RE .PP \fB\-T \fR\fB\fIpattern\fR\fR .br \fB\-\-exclude\-table=\fR\fB\fIpattern\fR\fR .RS 4 هیچ جدولی را که با \fIpattern\fR منطبق باشد استخراج نکن\&. الگو مطابق با همان قواعد \fB\-t\fR تفسیر می‌شود\&. \fB\-T\fR می‌تواند بیش از یک بار مشخص شود تا جدول‌های منطبق با هر یک از چندین الگو مستثنی شوند\&. .sp هنگامی که هر دوی \fB\-t\fR و \fB\-T\fR داده شوند، رفتار بدین صورت است که فقط جدول‌هایی استخراج می‌شوند که دست‌کم با یک سوئیچ \fB\-t\fR همخوانی داشته باشند اما با هیچ‌کدام از سوئیچ‌های \fB\-T\fR منطبق نباشند\&. اگر \fB\-T\fR بدون \fB\-t\fR ارائه شود، جدول‌های منطبق با \fB\-T\fR از خروجی که در غیر این صورت یک استخراج عادی می‌بود، مستثنی می‌شوند\&. .RE .PP \fB\-v\fR .br \fB\-\-verbose\fR .RS 4 حالت پرگویی (verbose) را مشخص می‌کند\&. این باعث می‌شود pg_dump توضیحات تفصیلی اشیاء و زمان‌های شروع/پایان را در فایل خروجی استخراج، و پیام‌های پیشرفت را در خطای استاندارد بنویسد\&. تکرار این گزینه باعث نمایش پیام‌های اشکال‌زدایی بیشتر در خطای استاندارد می‌شود\&. .RE .PP \fB\-V\fR .br \fB\-\-version\fR .RS 4 نسخه pg_dump را چاپ کرده و خارج شو\&. .RE .PP \fB\-x\fR .br \fB\-\-no\-privileges\fR .br \fB\-\-no\-acl\fR .RS 4 از استخراج امتیازات دسترسی (دستورهای grant/revoke) جلوگیری کن\&. .RE .PP \fB\-Z \fR\fB\fIlevel\fR\fR .br \fB\-Z \fR\fB\fImethod\fR\fR[:\fIdetail\fR] .br \fB\-\-compress=\fR\fB\fIlevel\fR\fR .br \fB\-\-compress=\fR\fB\fImethod\fR\fR[:\fIdetail\fR] .RS 4 روش فشرده‌سازی و/یا سطح فشرده‌سازی مورد استفاده را مشخص کن\&. روش فشرده‌سازی می‌تواند روی gzip، lz4، zstd یا none برای عدم فشرده‌سازی تنظیم شود\&. یک رشته جزئیات فشرده‌سازی نیز می‌تواند به‌طور اختیاری مشخص شود\&. اگر رشته جزئیات یک عدد صحیح باشد، سطح فشرده‌سازی را مشخص می‌کند\&. در غیر این صورت، باید فهرستی از موارد جداشده با کاما باشد که هر کدام به صورت keyword یا keyword=value هستند\&. در حال حاضر، کلیدواژه‌های پشتیبانی‌شده level و long می‌باشند\&. .sp اگر هیچ سطح فشرده‌سازی مشخص نشود، سطح فشرده‌سازی پیش‌فرض استفاده خواهد شد\&. اگر تنها یک سطح بدون ذکر الگوریتم مشخص شود، در صورتی که سطح بزرگ‌تر از 0 باشد از فشرده‌سازی gzip استفاده می‌شود، و در صورتی که سطح 0 باشد هیچ فشرده‌سازی انجام نخواهد شد\&. .sp برای قالب‌های آرشیو سفارشی (custom) و دایرکتوری، این گزینه فشرده‌سازی قطعات داده‌های جداگانه هر جدول را تعیین می‌کند و حالت پیش‌فرض، فشرده‌سازی با استفاده از gzip در یک سطح متوسط است\&. برای خروجی متن ساده، تنظیم یک سطح فشرده‌سازی غیرصفر باعث می‌شود کل فایل خروجی فشرده شود، درست مانند اینکه از طریق gzip، lz4 یا zstd هدایت شده باشد؛ اما حالت پیش‌فرض فشرده نکردن است\&. با فشرده‌سازی zstd، حالت long ممکن است نسبت فشرده‌سازی را به بهای افزایش مصرف حافظه بهبود بخشد\&. .sp قالب آرشیو tar در حال حاضر به‌هیچ‌وجه از فشرده‌سازی پشتیبانی نمی‌کند\&. .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 بارگذاری کرد\&. هرگونه خطا در طول بازیابی تنها باعث از دست رفتن سطرهایی می‌شود که بخشی از دستور \fBINSERT\fR مشکل‌دار هستند، نه کل محتویات جدول\&. .RE .PP \fB\-\-disable\-dollar\-quoting\fR .RS 4 این گزینه استفاده از نقل‌قول دلاری (dollar quoting) را برای بدنه توابع غیرفعال کرده و آن‌ها را ملزم به نقل‌قول با استفاده از نحو رشته‌ای استاندارد SQL می‌کند\&. .RE .PP \fB\-\-disable\-triggers\fR .RS 4 این گزینه تنها هنگام ایجاد استخراجی که شامل داده‌ها است اما شامل طرحواره (schema) نیست کاربرد دارد\&. این گزینه به pg_dump دستور می‌دهد تا دستورهایی را برای غیرفعال کردن موقت تریگرها در جدول‌های هدف در حین بازیابی داده‌ها بگنجاند\&. اگر بررسی‌های جامعیت ارجاعی یا تریگرهای دیگری روی جدول‌ها دارید که نمی‌خواهید در طول بازیابی داده‌ها فراخوانی شوند، از این گزینه استفاده کنید\&. .sp در حال حاضر، دستورهای ایجادشده برای \fB\-\-disable\-triggers\fR باید توسط مدیر سیستم (superuser) اجرا شوند\&. بنابراین، باید نام یک مدیر سیستم را با \fB\-S\fR مشخص کنید، یا ترجیحاً دقت کنید که اسکریپت حاصل به عنوان مدیر سیستم (superuser) اجرا شود\&. .sp این گزینه هنگام تولید یک فایل خروجی آرشیو (غیرمتنی) نادیده گرفته می‌شود\&. برای قالب‌های آرشیو، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR مشخص کنید\&. .RE .PP \fB\-\-enable\-row\-security\fR .RS 4 این گزینه تنها هنگام استخراج محتویات جدولی که دارای امنیت در سطح سطر (row security) است کاربرد دارد\&. به‌طور پیش‌فرض، pg_dump مقدار row_security را روی off تنظیم می‌کند تا اطمینان یابد تمام داده‌ها از جدول استخراج می‌شوند\&. اگر کاربر امتیازات کافی برای دور زدن امنیت در سطح سطر را نداشته باشد، خطایی صادر می‌شود\&. این پارامتر به pg_dump دستور می‌دهد در عوض row_security را روی on تنظیم کند و به کاربر اجازه دهد بخش‌هایی از محتوای جدول را که به آن‌ها دسترسی دارد استخراج کند\&. .sp توجه داشته باشید در صورتی که هم‌اکنون از این گزینه استفاده می‌کنید، احتمالاً می‌خواهید استخراج در قالب \fBINSERT\fR باشد، زیرا دستور \fBCOPY FROM\fR در زمان بازیابی از امنیت در سطح سطر پشتیبانی نمی‌کند\&. .RE.PP \fB\-\-exclude\-extension=\fR\fB\fIpattern\fR\fR .RS 4 هیچ افزونه‌ای منطبق با \fIpattern\fR تخلیه نشود\&. این الگو طبق همان قواعد مربوط به \fB\-e\fR تفسیر می‌شود\&. گزینهٔ \fB\-\-exclude\-extension\fR می‌تواند بیش از یک بار مشخص شود تا افزونه‌های منطبق با هر یک از چندین الگو را مستثنی کند\&. .sp هنگامی که هر دو گزینهٔ \fB\-e\fR و \fB\-\-exclude\-extension\fR داده شده باشند، رفتار به این صورت است که تنها افزونه‌هایی تخلیه می‌شوند که حداقل با یکی از سوییچ‌های \fB\-e\fR تطابق داشته و با هیچ‌یک از سوییچ‌های \fB\-\-exclude\-extension\fR تطابقی نداشته باشند\&. اگر \fB\-\-exclude\-extension\fR بدون \fB\-e\fR ارائه شود، افزونه‌های منطبق با \fB\-\-exclude\-extension\fR از آنچه در غیر این صورت یک تخلیهٔ عادی می‌بود، مستثنی می‌شوند\&. .RE .PP \fB\-\-exclude\-table\-and\-children=\fR\fB\fIpattern\fR\fR .RS 4 این گزینه مشابه گزینهٔ \fB\-T\fR/\fB\-\-exclude\-table\fR است، با این تفاوت که هرگونه پارتیشن یا جدول‌های فرزند موروثی از جدول(های) منطبق با \fIpattern\fR را نیز مستثنی می‌کند\&. .RE .PP \fB\-\-exclude\-table\-data=\fR\fB\fIpattern\fR\fR .RS 4 داده‌های هیچ‌یک از جدول‌های منطبق با \fIpattern\fR را تخلیه نکنید\&. این الگو بر اساس همان قواعد مربوط به \fB\-t\fR تفسیر می‌شود\&. گزینهٔ \fB\-\-exclude\-table\-data\fR می‌تواند بیش از یک بار برای مستثنی کردن جدول‌های منطبق با هر یک از چندین الگو مشخص شود\&. این گزینه زمانی مفید است که به تعریف یک جدول خاص نیاز دارید، حتی اگر نیازی به داده‌های درون آن نداشته باشید\&. .sp برای مستثنی کردن داده‌های تمام جدول‌های پایگاه داده، به \fB\-\-schema\-only\fR یا \fB\-\-statistics\-only\fR مراجعه کنید\&. .RE .PP \fB\-\-exclude\-table\-data\-and\-children=\fR\fB\fIpattern\fR\fR .RS 4 این گزینه مشابه گزینهٔ \fB\-\-exclude\-table\-data\fR است، به جز اینکه داده‌های تمامی پارتیشن‌ها یا جدول‌های فرزند موروثی از جدول(های) منطبق با \fIpattern\fR را نیز مستثنی می‌کند\&. .RE .PP \fB\-\-extra\-float\-digits=\fR\fB\fIndigits\fR\fR .RS 4 هنگام تخلیهٔ داده‌های ممیز شناور، به جای حداکثر دقت در دسترس، از مقدار مشخص‌شده برای \fBextra_float_digits\fR استفاده کنید\&. تخلیه‌های روتین که برای مقاصد پشتیبان‌گیری انجام می‌شوند نباید از این گزینه استفاده کنند\&. .RE .PP \fB\-\-filter=\fR\fB\fIfilename\fR\fR .RS 4 نام فایلی را مشخص کنید که الگوهای اشیاء جهت گنجاندن یا مستثنی کردن از تخلیه از آن خوانده شود\&. الگوها طبق همان قواعد مربوط به گزینه‌های متناظر تفسیر می‌شوند: \fB\-t\fR/\fB\-\-table\fR، \fB\-\-table\-and\-children\fR، \fB\-T\fR/\fB\-\-exclude\-table\fR و \fB\-\-exclude\-table\-and\-children\fR برای جدول‌ها، \fB\-n\fR/\fB\-\-schema\fR و \fB\-N\fR/\fB\-\-exclude\-schema\fR برای طرح‌واره‌ها، \fB\-\-include\-foreign\-data\fR برای داده‌های روی سرورهای خارجی، \fB\-\-exclude\-table\-data\fR و \fB\-\-exclude\-table\-data\-and\-children\fR برای داده‌های جدول، و \fB\-e\fR/\fB\-\-extension\fR و \fB\-\-exclude\-extension\fR برای افزونه‌ها\&. برای خواندن از STDIN، از \- به عنوان نام فایل استفاده کنید\&. گزینهٔ \fB\-\-filter\fR می‌تواند همگام با گزینه‌های ذکرشده در بالا برای گنجاندن یا مستثنی کردن اشیاء مشخص شود، و همچنین می‌تواند بیش از یک بار برای چندین فایل پالایه تعیین گردد\&. .sp این فایل در هر سطر یک الگوی شیء را با ساختار زیر فهرست می‌کند: .sp .if n \{\ .RS 4 .\} .nf { include | exclude } { extension | foreign_data | table | table_and_children | table_data | table_data_and_children | schema } \fIPATTERN\fR .fi .if n \{\ .RE .\} .sp کلمهٔ کلیدی اول مشخص می‌کند که آیا اشیای منطبق با الگو باید گنجانده شوند یا مستثنی گردند\&. کلمهٔ کلیدی دوم نوع شیء مورد پالایش با استفاده از الگو را مشخص می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} extension: افزونه‌ها\&. این مورد مانند گزینهٔ \fB\-e\fR/\fB\-\-extension\fR یا \fB\-\-exclude\-extension\fR عمل می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} foreign_data: داده‌های روی سرورهای خارجی\&. این مورد مانند گزینهٔ \fB\-\-include\-foreign\-data\fR عمل می‌کند\&. این کلمهٔ کلیدی تنها می‌تواند به همراه کلمهٔ کلیدی include استفاده شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} table: جدول‌ها\&. این مورد مانند گزینهٔ \fB\-t\fR/\fB\-\-table\fR یا \fB\-T\fR/\fB\-\-exclude\-table\fR عمل می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} table_and_children: جدول‌ها شامل تمامی پارتیشن‌ها یا جدول‌های فرزند موروثی\&. این مورد مانند گزینهٔ \fB\-\-table\-and\-children\fR یا \fB\-\-exclude\-table\-and\-children\fR عمل می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} table_data: داده‌های جدول برای هر جدولی که با \fIpattern\fR تطابق دارد\&. این مورد مانند گزینهٔ \fB\-\-exclude\-table\-data\fR عمل می‌کند\&. این کلمهٔ کلیدی تنها می‌تواند به همراه کلمهٔ کلیدی exclude استفاده شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\.sp -1 .IP \(bu 2.3 .\} table_data_and_children: داده‌های جدول برای هر جدولی که با \fIpattern\fR مطابقت داشته باشد، و همچنین تمامی پارتیشن‌ها یا فرزندان وراثتی آن جدول(ها)\&. این مانند گزینهٔ \fB\-\-exclude\-table\-data\-and\-children\fR عمل می‌کند\&. این کلیدواژه فقط می‌تواند همراه با کلیدواژهٔ exclude استفاده شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} schema: طرحواره‌ها\&. این مانند گزینهٔ \fB\-n\fR/\fB\-\-schema\fR یا \fB\-N\fR/\fB\-\-exclude\-schema\fR عمل می‌کند\&. .RE .sp سطرهایی که با # شروع می‌شوند توضیح (کامنت) در نظر گرفته شده و نادیده گرفته می‌شوند\&. توضیحات می‌توانند پس از یک سطر الگوی شیء نیز قرار گیرند\&. سطرهای خالی نیز نادیده گرفته می‌شوند\&. برای نحوهٔ نقل‌قول‌گذاری در الگوها بخش Patterns را ببینید\&. .sp فایل‌های نمونه در زیر در بخش Examples فهرست شده‌اند\&. .RE .PP \fB\-\-if\-exists\fR .RS 4 استفاده از دستورهای DROP \&.\&.\&. IF EXISTS برای حذف اشیاء در حالت \fB\-\-clean\fR\&. این کار خطاهای \(lqdoes not exist\(rq (وجود ندارد) را که در غیر این صورت ممکن است گزارش شوند نادیده می‌گیرد\&. این گزینه معتبر نیست مگر اینکه \fB\-\-clean\fR نیز مشخص شده باشد\&. .RE .PP \fB\-\-include\-foreign\-data=\fR\fB\fIforeignserver\fR\fR .RS 4 استخراج داده‌ها برای هر جدول خارجی با یک سرور خارجی منطبق بر الگوی \fIforeignserver\fR\&. با نوشتن چندین سوئیچ \fB\-\-include\-foreign\-data\fR می‌توان چندین سرور خارجی را انتخاب کرد\&. همچنین، پارامتر \fIforeignserver\fR بر اساس همان قواعد به کار رفته در دستورهای \ed برنامهٔ psql (بخش Patterns را ببینید) به عنوان یک الگو تفسیر می‌شود، بنابراین می‌توان با نوشتن نویسه‌های عام (wildcard) در الگو، چندین سرور خارجی را نیز انتخاب کرد\&. هنگام استفاده از نویسه‌های عام، دقت کنید که در صورت نیاز الگو را درون نقل‌قول قرار دهید تا از بسط نویسه‌های عام توسط شل جلوگیری شود؛ بخش Examples را در زیر ببینید\&. تنها استثنا این است که الگوی خالی مجاز نیست\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br استفاده از نویسه‌های عام در \fB\-\-include\-foreign\-data\fR ممکن است منجر به دسترسی به سرورهای خارجی غیرمنتظره شود\&. همچنین، برای استفادهٔ امن از این گزینه، مطمئن شوید که سرور نام‌برده مالک قابل اعتمادی داشته باشد\&. .sp .5v .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br هنگامی که \fB\-\-include\-foreign\-data\fR مشخص شده باشد، pg_dump بررسی نمی‌کند که آیا جدول خارجی قابل نوشتن است یا خیر\&. بنابراین، هیچ تضمینی وجود ندارد که نتایج استخراج یک جدول خارجی با موفقیت بازیابی شود\&. .sp .5v .RE .RE .PP \fB\-\-inserts\fR .RS 4 استخراج داده‌ها به صورت دستورهای \fBINSERT\fR (به جای \fBCOPY\fR)\&. این کار بازیابی را بسیار کُند می‌کند؛ این گزینه عمدتاً برای ایجاد فایل‌های خروجی مفیدی است که بتوان آن‌ها را در پایگاه‌های دادهٔ غیر PostgreSQL بارگذاری کرد\&. هرگونه خطا در حین بازیابی فقط باعث از دست رفتن ردیف‌هایی می‌شود که بخشی از دستور \fBINSERT\fR مشکل‌دار هستند، نه تمام محتویات جدول\&. توجه داشته باشید اگر ترتیب ستون‌ها را تغییر داده باشید، ممکن است بازیابی به طور کلی با شکست مواجه شود\&. گزینهٔ \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\-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_dump\fR منتظر می‌ماند تا تمامی فایل‌ها به طور ایمن روی دیسک نوشته شوند\&. این گزینه باعث می‌شود \fBpg_dump\fR بدون انتظار به کار خود پایان دهد، که سریع‌تر است اما بدین معناست که از کار افتادن (crash) بعدی سیستم‌عامل می‌تواند فایل استخراج‌شده را آسیب‌دیده باقی بگذارد\&. به‌طور کلی، این گزینه برای آزمودن مفید است اما نباید هنگام استخراج داده‌ها از محیط‌های عملیاتی استفاده شود\&. .RE.PP \fB\-\-no\-table\-access\-method\fR .RS 4 دستورهایی را برای انتخاب متدهای دسترسی به جدول در خروجی قرار نده\&. با این گزینه، تمام اشیاء با هر متد دسترسی جدولی که هنگام بازیابی پیش‌فرض باشد ایجاد خواهند شد\&. .sp این گزینه هنگام تولید یک فایل خروجی بایگانی (غیرمتنی) نادیده گرفته می‌شود\&. برای قالب‌های بایگانی، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR مشخص کنید\&. .RE .PP \fB\-\-no\-tablespaces\fR .RS 4 دستورهایی را برای انتخاب tablespaceها در خروجی قرار نده\&. با این گزینه، تمام اشیاء در هر tablespaceای که هنگام بازیابی پیش‌فرض باشد ایجاد خواهند شد\&. .sp این گزینه هنگام تولید یک فایل خروجی بایگانی (غیرمتنی) نادیده گرفته می‌شود\&. برای قالب‌های بایگانی، می‌توانید این گزینه را هنگام فراخوانی \fBpg_restore\fR مشخص کنید\&. .RE .PP \fB\-\-no\-toast\-compression\fR .RS 4 دستورهایی را برای تنظیم روش‌های فشرده‌سازی TOAST در خروجی قرار نده\&. با این گزینه، همه ستون‌ها با تنظیمات فشرده‌سازی پیش‌فرض بازیابی خواهند شد\&. .RE .PP \fB\-\-no\-unlogged\-table\-data\fR .RS 4 محتوای جدول‌ها و دنباله‌ها (sequences) ثبت‌نشده (unlogged) را در خروجی dump قرار نده\&. این گزینه هیچ تأثیری بر تخلیه شدن یا نشدن تعاریف جدول و دنباله (طرح‌واره یا schema) ندارد؛ فقط از تخلیه داده‌های جدول و دنباله جلوگیری می‌کند\&. داده‌های جدول‌ها و دنباله‌های unlogged هنگام گرفتن dump از یک سرور standby همیشه مستثنی می‌شوند\&. .RE .PP \fB\-\-on\-conflict\-do\-nothing\fR .RS 4 عبارت ON CONFLICT DO NOTHING را به دستورهای \fBINSERT\fR اضافه کن\&. این گزینه معتبر نیست مگر اینکه \fB\-\-inserts\fR، \fB\-\-column\-inserts\fR یا \fB\-\-rows\-per\-insert\fR نیز مشخص شده باشد\&. .RE .PP \fB\-\-quote\-all\-identifiers\fR .RS 4 کوتیشن‌گذاری اجباری برای همه شناسه‌ها\&. این گزینه زمانی توصیه می‌شود که از یک پایگاه‌داده در سروری dump گرفته می‌شود که نسخه اصلی (major version) PostgreSQL آن با نسخه pg_dump متفاوت است، یا زمانی که قرار است خروجی در سروری با نسخه اصلی متفاوتی بارگذاری شود\&. به‌طور پیش‌فرض، pg_dump تنها شناسه‌هایی را داخل کوتیشن قرار می‌دهد که در نسخه اصلی خودش جزو کلمات رزروشده باشند\&. این امر گاهی اوقات هنگام تعامل با سرورهایی از نسخه‌های دیگر که ممکن است مجموعه‌ای کمی متفاوت از کلمات رزروشده داشته باشند، به مشکلات سازگاری می‌انجامد\&. استفاده از \fB\-\-quote\-all\-identifiers\fR از چنین مشکلاتی جلوگیری می‌کند، به بهای اینکه خوانایی اسکریپت خروجی کمتر خواهد شد\&. .RE .PP \fB\-\-restrict\-key=\fR\fB\fIrestrict_key\fR\fR .RS 4 از رشته ارائه‌شده به عنوان کلید \fB\erestrict\fR در psql در خروجی dump استفاده کن\&. این گزینه فقط برای dumpهای متنی ساده (plain-text) قابل تعیین است؛ یعنی زمانی که \fB\-\-format\fR روی plain تنظیم شده باشد یا گزینه \fB\-\-format\fR حذف شده باشد\&. اگر هیچ کلید محدودیتی مشخص نشود، pg_dump در صورت نیاز یک کلید تصادفی ایجاد خواهد کرد\&. کلیدها فقط می‌توانند شامل نویسه‌های الفبایی-عددی (alphanumeric) باشند\&. .sp این گزینه عمدتاً برای اهداف آزمایشی و سایر سناریوهایی که نیاز به خروجی تکرارپذیر دارند (مانند مقایسه فایل‌های dump) در نظر گرفته شده است\&. برای استفاده عمومی توصیه نمی‌شود، زیرا یک سرور مخرب با آگاهی قبلی از کلید ممکن است بتواند کدهای دلخواهی را تزریق کند که روی ماشینی که psql را با خروجی dump اجرا می‌کند، اجرا شوند\&. .RE .PP \fB\-\-rows\-per\-insert=\fR\fB\fInrows\fR\fR .RS 4 داده‌ها را به عنوان دستورهای \fBINSERT\fR (به‌جای \fBCOPY\fR) خروجی بگیر\&. حداکثر تعداد ردیف‌ها را در هر دستور \fBINSERT\fR کنترل می‌کند\&. مقدار مشخص‌شده باید عددی بزرگ‌تر از صفر باشد\&. هرگونه خطا در حین بازیابی تنها باعث از دست رفتن ردیف‌هایی می‌شود که بخشی از دستور \fBINSERT\fR مشکل‌دار هستند، نه تمام محتوای جدول\&. .RE .PP \fB\-\-section=\fR\fB\fIsectionname\fR\fR .RS 4 تنها از بخش نام‌برده خروجی بگیر\&. نام بخش می‌تواند \fBpre\-data\fR، \fBdata\fR یا \fBpost\-data\fR باشد\&. این گزینه می‌تواند بیش از یک بار برای انتخاب چندین بخش مشخص شود\&. حالت پیش‌فرض، گرفتن خروجی از تمام بخش‌ها است\&. .sp بخش data شامل داده‌های واقعی جدول، محتویات اشیاء بزرگ (large-object)، مقادیر دنباله‌ها، و آمارهای مربوط به جدول‌ها، نماهای مادی‌شده (materialized views) و جدول‌های خارجی (foreign tables) است\&. موارد post-data شامل تعاریف اندیس‌ها، تریگرها، قواعد (rules)، آمارهای مربوط به اندیس‌ها، و قیدهایی غیر از قیدهای اعتبارسنجی‌شده‌ی check و not-null است\&. موارد pre-data شامل تمام موارد دیگر تعریف داده هستند\&. .RE .PP \fB\-\-sequence\-data\fR .RS 4 داده‌های دنباله (sequence) را در dump بگنجان\&. این رفتار پیش‌فرض است، مگر زمانی که \fB\-\-no\-data\fR، \fB\-\-schema\-only\fR یا \fB\-\-statistics\-only\fR مشخص شده باشد\&. .RE .PP \fB\-\-serializable\-deferrable\fR .RS 4 از یک تراکنش serializable برای dump استفاده کن تا اطمینان حاصل شود که snapshot استفاده‌شده با وضعیت‌های بعدی پایگاه‌داده سازگار است؛ اما این کار با انتظار برای رسیدن به نقطه‌ای در جریان تراکنش‌ها انجام می‌شود که در آن هیچ ناهنجاری نتواند رخ دهد، به طوری که خطری مبنی بر شکست dump یا باعث بازگردانی (roll back) تراکنش‌های دیگر با خطای serialization_failure وجود نداشته باشد\&. برای اطلاعات بیشتر درباره جداسازی تراکنش‌ها و کنترل همزمانی، به فصل\ \&13 مراجعه کنید\&. .sp این گزینه برای dumpای که تنها برای بازیابی پس از بحران (disaster recovery) در نظر گرفته شده است، مزیتی ندارد\&. این گزینه می‌تواند برای dumpای مفید باشد که جهت بارگذاری یک کپی از پایگاه‌داده برای گزارش‌گیری یا سایر مقاصد تقسیم بار فقط‌خواندنی استفاده می‌شود، در حالی که پایگاه‌داده اصلی همچنان در حال به‌روزرسانی است\&. بدون آن، dump ممکن است وضعیتی را منعکس کند که با هیچ اجرای سریالی از تراکنش‌هایی که در نهایت ثبت (commit) شده‌اند سازگار نباشد\&. برای مثال، اگر از روش‌های پردازش دسته‌ای (batch processing) استفاده شود، ممکن است یک دسته بدون ظاهر شدن تمام موارد درون آن، به عنوان بسته‌شده در خروجی نمایش داده شود\&. .sp اگر هنگام شروع pg_dump هیچ تراکنش خواندن-نوشتنی فعالی وجود نداشته باشد، این گزینه هیچ تفاوتی ایجاد نخواهد کرد\&. اگر تراکنش‌های خواندن-نوشتن فعال باشند، شروع dump ممکن است برای مدت نامعلومی به تعویق بیفتد\&. پس از شروع اجرا، کارایی با وجود این گزینه یا بدون آن یکسان خواهد بود\&. .RE .PP \fB\-\-snapshot=\fR\fB\fIsnapshotname\fR\fR .RS 4 هنگام گرفتن خروجی dump از پایگاه‌داده، از snapshot همگام‌سازی‌شده‌ی مشخص‌شده استفاده کن (برای جزئیات بیشتر به جدول\ \&9.100 مراجعه کنید)\&. .sp این گزینه زمانی مفید است که نیاز به همگام‌سازی dump با یک شکاف تکثیر منطقی (logical replication slot، به فصل\ \&47 مراجعه کنید) یا با یک نشست (session) همزمان وجود داشته باشد\&. .sp در حالت خروجی موازی (parallel dump)، به‌جای گرفتن یک snapshot جدید، از نام snapshot تعریف‌شده توسط این گزینه استفاده می‌شود\&. .RE .PP \fB\-\-statistics\fR .RS 4 آمارهای بهینه‌ساز (optimizer statistics) را در خروجی قرار بده\&. .RE .PP \fB\-\-statistics\-only\fR .RS 4 فقط آمارها را در خروجی قرار بده، نه طرح‌واره (تعاریف داده) یا داده‌ها را\&. آمارهای بهینه‌ساز برای جدول‌ها، نماهای مادی‌شده، جدول‌های خارجی، و اندیس‌ها در خروجی قرار می‌گیرند\&. .RE .PP \fB\-\-strict\-names\fR .RS 4 الزام می‌کند که هر الگوی افزونه (\fB\-e\fR/\fB\-\-extension\fR)، طرح‌واره (\fB\-n\fR/\fB\-\-schema\fR) و جدول (\fB\-t\fR/\fB\-\-table\fR) حداقل با یک افزونه/طرح‌واره/جدول در پایگاه‌داده مورد نظر مطابقت داشته باشد\&. این موضوع برای فیلترهای استفاده‌شده با \fB\-\-filter\fR نیز صدق می‌کند\&. توجه داشته باشید که اگر هیچ‌یک از الگوهای افزونه/طرح‌واره/جدول تطابقی پیدا نکنند، pg_dump حتی بدون \fB\-\-strict\-names\fR نیز خطا تولید خواهد کرد\&. .sp این گزینه تأثیری بر \fB\-\-exclude\-extension\fR، \fB\-N\fR/\fB\-\-exclude\-schema\fR، \fB\-T\fR/\fB\-\-exclude\-table\fR یا \fB\-\-exclude\-table\-data\fR ندارد\&. عدم تطابق یک الگوی استثنا (exclude pattern) با هیچ شیئی، خطا محسوب نمی‌شود\&. .RE .PP \fB\-\-sync\-method=\fR\fB\fImethod\fR\fR .RS 4 هنگامی که روی fsync تنظیم شده باشد (که حالت پیش‌فرض است)، \fBpg_dump \-\-format=directory\fR تمام فایل‌های موجود در دایرکتوری بایگانی را به‌طور بازگشتی باز کرده و همگام‌سازی (sync) می‌کند\&. .sp در Linux، می‌توان به‌جای آن از syncfs استفاده کرد تا از سیستم‌عامل خواسته شود کل سیستم‌فایلی را که شامل دایرکتوری بایگانی است همگام‌سازی کند\&. برای اطلاعات درباره نکاتی که باید هنگام استفاده از syncfs مد نظر داشت، به recovery_init_sync_method مراجعه کنید\&. .sp این گزینه در صورتی که \fB\-\-no\-sync\fR استفاده شود یا \fB\-\-format\fR روی directory تنظیم نشده باشد، هیچ اثری ندارد\&. .RE .PP \fB\-\-table\-and\-children=\fR\fB\fIpattern\fR\fR .RS 4 این گزینه مشابه گزینه \fB\-t\fR/\fB\-\-table\fR است، با این تفاوت که تمام پارتیشن‌ها یا جدول‌های فرزند وراثتیِ جدول(های) منطبق بر \fIpattern\fR را نیز شامل می‌شود\&. .RE.PP \fB\-\-use\-set\-session\-authorization\fR .RS 4 خروجی دادن دستورات استاندارد SQL \fBSET SESSION AUTHORIZATION\fR به جای دستورات \fBALTER OWNER\fR جهت تعیین مالکیت اشیاء\&. این کار dump را با استانداردها سازگارتر می‌کند، اما بسته به پیشینه اشیاء موجود در خروجی، ممکن است به‌درستی بازیابی نشود\&. همچنین، یک dump با استفاده از \fBSET SESSION AUTHORIZATION\fR برای بازیابی درست مسلماً به امتیازات مدیر سیستم (superuser) نیاز خواهد داشت، در حالی که \fBALTER OWNER\fR به امتیازات کمتری نیاز دارد\&. .RE .PP \fB\-?\fR .br \fB\-\-help\fR .RS 4 نمایش راهنما درباره آرگومان‌های خط فرمان pg_dump و خروج\&. .RE .PP گزینه‌های خط فرمان زیر پارامترهای اتصال به پایگاه‌داده را کنترل می‌کنند\&. .PP \fB\-d \fR\fB\fIdbname\fR\fR .br \fB\-\-dbname=\fR\fB\fIdbname\fR\fR .RS 4 نام پایگاه‌داده‌ای که باید به آن متصل شد را مشخص می‌کند\&. این معادل با مشخص کردن \fIdbname\fR به‌عنوان نخستین آرگومان غیرگزینه‌ای در خط فرمان است\&. \fIdbname\fR می‌تواند یک رشته اتصال (connection string) باشد\&. در این صورت، پارامترهای رشته اتصال بر هر گزینه ناسازگار خط فرمان برتری خواهند داشت\&. .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\-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_dump به درخواست گذرواژه پیش از اتصال به پایگاه‌داده\&. .sp این گزینه هرگز ضروری نیست، چرا که اگر سرور نیازمند احراز هویت با گذرواژه باشد، pg_dump به‌طور خودکار اعلان گذرواژه را نمایش خواهد داد\&. با این حال، pg_dump یک تلاش برای اتصال را هدر خواهد داد تا متوجه شود سرور گذرواژه می‌خواهد\&. در برخی موارد برای جلوگیری از این تلاش اتصال اضافه، وارد کردن \fB\-W\fR ارزشش را دارد\&. .RE .PP \fB\-\-role=\fR\fB\fIrolename\fR\fR .RS 4 نام نقشی را که باید برای ایجاد dump استفاده شود مشخص می‌کند\&. این گزینه باعث می‌شود که pg_dump پس از اتصال به پایگاه‌داده، دستور \fBSET ROLE\fR \fIrolename\fR را صادر کند\&. این گزینه زمانی مفید است که کاربر احراز هویت‌شده (مشخص‌شده با \fB\-U\fR) فاقد امتیازات لازم برای pg_dump است، اما می‌تواند به نقشی با حقوق دسترسی مورد نیاز جابه‌جا شود\&. برخی از سامانه‌ها سیاستی علیه ورود مستقیم با عنوان مدیر سیستم (superuser) دارند و استفاده از این گزینه امکان ایجاد dump را بدون نقض آن سیاست فراهم می‌کند\&. .RE.SH "محیط (ENVIRONMENT)" .PP \fBPGDATABASE\fR .br \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 نیز استفاده می‌کند (ببینید Section\ \&32.15)\&. .SH "خطاها (DIAGNOSTICS)" .PP pg_dump به‌صورت درونی دستورهای \fBSELECT\fR را اجرا می‌کند\&. اگر در اجرای pg_dump مشکلی دارید، مطمئن شوید که می‌توانید با استفاده از، مثلاً، \fBpsql\fR(1) اطلاعات را از پایگاه داده واکشی کنید\&. همچنین، هرگونه تنظیمات اتصال پیش‌فرض و متغیرهای محیطی که توسط کتابخانهٔ فرانت‌اند libpq استفاده می‌شوند اعمال خواهند شد\&. .PP فعالیت پایگاه دادهٔ pg_dump معمولاً توسط سامانهٔ آمار تجمعی جمع‌آوری می‌شود\&. اگر این امر مطلوب نیست، می‌توانید پارامتر \fItrack_counts\fR را از طریق \fBPGOPTIONS\fR یا دستور ALTER USER روی مقدار false تنظیم کنید\&. .SH "نکات (NOTES)" .PP اگر کلاستر پایگاه دادهٔ شما هرگونه افزودهٔ محلی در پایگاه دادهٔ template1 دارد، دقت کنید که خروجی pg_dump را در یک پایگاه دادهٔ واقعاً خالی بازگردانی کنید؛ در غیر این صورت احتمالاً به دلیل تعاریف تکراری اشیاء اضافه‌شده با خطا مواجه خواهید شد\&. برای ساختن یک پایگاه دادهٔ خالی بدون هیچ افزودهٔ محلی، به جای template1 از template0 کپی بگیرید، برای مثال: .sp .if n \{\ .RS 4 .\} .nf CREATE DATABASE foo WITH TEMPLATE template0; .fi .if n \{\ .RE .\} .PP هنگامی که یک dump بدون طرح‌واره (schema) انتخاب شده باشد و گزینهٔ \fB\-\-disable\-triggers\fR به کار رود، pg_dump دستوراتی را برای غیرفعال کردن تریگرها روی جدول‌های کاربری پیش از درج داده‌ها، و سپس دستوراتی را برای فعال‌سازی مجدد آن‌ها پس از درج داده‌ها صادر می‌کند\&. اگر فرایند بازگردانی در میانهٔ کار متوقف شود، ممکن است کاتالوگ‌های سیستم در وضعیتی نادرست رها شوند\&. .PP هنگامی که \fB\-\-statistics\fR مشخص شده باشد، \fBpg_dump\fR بیشتر آمارهای بهینه‌ساز را در فایل dump حاصل لحاظ خواهد کرد\&. این امر شامل همهٔ آمارها نمی‌شود، مانند آمارهایی که صراحتاً با CREATE STATISTICS (\fBCREATE_STATISTICS\fR(7)) ایجاد شده‌اند، آمارهای سفارشی اضافه‌شده توسط یک افزونه، یا آمارهای جمع‌آوری‌شده توسط سامانهٔ آمار تجمعی\&. بنابراین، اجرای \fBANALYZE\fR پس از بازگردانی از یک فایل dump ممکن است همچنان برای اطمینان از عملکرد بهینه سودمند باشد؛ برای اطلاعات بیشتر ببینید Section\ \&24.1.3 و Section\ \&24.1.6\&. .PP از آنجا که pg_dump برای انتقال داده‌ها به نسخه‌های جدیدتر PostgreSQL استفاده می‌شود، می‌توان انتظار داشت که خروجی pg_dump در نسخه‌های سرور PostgreSQL جدیدتر از نسخهٔ خودِ pg_dump بارگذاری شود\&. همچنین pg_dump می‌تواند از سرورهای PostgreSQL قدیمی‌تر از نسخهٔ خودش dump تهیه کند\&. (در حال حاضر، سرورها تا نسخهٔ 9\&.2 پشتیبانی می‌شوند\&.) با این حال، pg_dump نمی‌تواند از سرورهای PostgreSQL جدیدتر از نسخهٔ اصلی (major version) خودش dump تهیه کند؛ این ابزار حتی اقدام به این کار را رد می‌کند تا ریسک ایجاد یک dump نامعتبر پیش نیاید\&. همچنین، تضمینی وجود ندارد که خروجی pg_dump بتواند در سروری با نسخهٔ اصلی قدیمی‌تر بارگذاری شود \(em حتی اگر dump از سروری با همان نسخه گرفته شده باشد\&. بارگذاری یک فایل dump در سرور قدیمی‌تر ممکن است نیازمند ویرایش دستی فایل dump برای حذف ساختارهای نحوی باشد که توسط سرور قدیمی‌تر درک نمی‌شوند\&. استفاده از گزینهٔ \fB\-\-quote\-all\-identifiers\fR در موارد بین‌نسخه‌ای توصیه می‌شود، چرا که می‌تواند از بروز مشکلات ناشی از تفاوت در فهرست واژه‌های رزروشده در نسخه‌های مختلف PostgreSQL جلوگیری کند\&. .PP هنگام گرفتن dump از اشتراک‌های تکثیر منطقی (logical replication subscriptions)، دستور pg_dump فرمان‌های \fBCREATE SUBSCRIPTION\fR را طوری تولید می‌کند که از گزینهٔ connect = false استفاده کنند تا بازگردانی اشتراک اتصالات از راه دور برای ایجاد یک replication slot یا کپی اولیهٔ جدول برقرار نکند\&. بدین ترتیب، فایل dump می‌تواند بدون نیاز به دسترسی شبکه به سرورهای راه دور بازگردانی شود\&. پس از آن، فعال‌سازی مجدد اشتراک‌ها به روشی مناسب بر عهدهٔ کاربر خواهد بود\&. اگر میزبان‌های مربوطه تغییر کرده باشند، ممکن است اطلاعات اتصال نیاز به تغییر داشته باشد\&. همچنین ممکن است خالی کردن (truncate) جدول‌های مقصد پیش از آغاز یک کپی کامل جدید از جدول مناسب باشد\&. اگر کاربران قصد دارند داده‌های اولیه را در حین نوسازی کپی کنند، باید slot را با two_phase = false بسازند\&. پس از همگام‌سازی اولیه، اگر اشتراک در اصل با گزینهٔ two_phase = true ایجاد شده باشد، گزینهٔ two_phase به‌طور خودکار توسط مشترک (subscriber) فعال خواهد شد\&. .PP به‌طور کلی توصیه می‌شود هنگام بازگردانی یک پایگاه داده از اسکریپت متنی سادهٔ pg_dump از گزینهٔ \fB\-X\fR (\fB\-\-no\-psqlrc\fR) استفاده کنید تا از یک فرایند بازگردانی تمیز اطمینان حاصل شود و از تداخل‌های احتمالی با پیکربندی‌های غیرپیش‌فرض psql جلوگیری به عمل آید\&..SH "مثال‌ها (EXAMPLES)" .PP برای استخراج پایگاه داده‌ای با نام mydb به یک فایل اسکریپت SQL: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای بارگذاری مجدد چنین اسکریپتی در یک پایگاه داده (به‌تازگی ایجادشده) با نام newdb: .sp .if n \{\ .RS 4 .\} .nf $ \fBpsql \-X \-d newdb \-f db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای استخراج یک پایگاه داده در یک فایل آرشیو با قالب سفارشی (custom\-format): .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-Fc mydb > db\&.dump\fR .fi .if n \{\ .RE .\} .PP برای استخراج یک پایگاه داده در یک آرشیو با قالب دایرکتوری (directory\-format): .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-Fd mydb \-f dumpdir\fR .fi .if n \{\ .RE .\} .PP برای استخراج یک پایگاه داده در یک آرشیو با قالب دایرکتوری به‌صورت موازی با ۵ وظیفهٔ کارگر (worker job): .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-Fd mydb \-j 5 \-f dumpdir\fR .fi .if n \{\ .RE .\} .PP برای بارگذاری مجدد یک فایل آرشیو در یک پایگاه داده (به‌تازگی ایجادشده) با نام newdb: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_restore \-d newdb db\&.dump\fR .fi .if n \{\ .RE .\} .PP برای بارگذاری مجدد یک فایل آرشیو در همان پایگاه داده‌ای که از آن استخراج شده است، با نادیده گرفتن و حذف محتویات فعلی آن پایگاه داده: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_restore \-d postgres \-\-clean \-\-create db\&.dump\fR .fi .if n \{\ .RE .\} .PP برای استخراج یک جدول مشخص با نام mytab: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-t mytab mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای استخراج تمام جدول‌هایی در طرح‌وارهٔ (schema) detroit که نام آن‌ها با emp شروع می‌شود، به استثنای جدول نام‌گذاری‌شده به employee_log: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-t \*(Aqdetroit\&.emp*\*(Aq \-T detroit\&.employee_log mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای استخراج تمام طرح‌واره‌هایی که نام آن‌ها با east یا west شروع شده و به gsm ختم می‌شود، به استثنای هر طرح‌واره‌ای که نام آن شامل کلمهٔ test باشد: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-n \*(Aqeast*gsm\*(Aq \-n \*(Aqwest*gsm\*(Aq \-N \*(Aq*test*\*(Aq mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP همان حالت، با استفاده از نمادگذاری عبارت باقاعده (regular expression) برای ادغام گزینه‌ها: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-n \*(Aq(east|west)*gsm\*(Aq \-N \*(Aq*test*\*(Aq mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای استخراج تمام اشیای پایگاه داده به استثنای جدول‌هایی که نام آن‌ها با ts_ آغاز می‌شود: .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-T \*(Aqts_*\*(Aq mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .PP برای مشخص کردن نامی با حروف بزرگ (upper\-case) یا ترکیبی از حروف کوچک و بزرگ (mixed\-case) در \fB\-t\fR و گزینه‌های مرتبط، باید نام را درون علامت نقل‌قول جفتی (double quote) قرار دهید؛ در غیر این صورت به حروف کوچک تبدیل خواهد شد (بخش الگوها (Patterns) را ببینید)\&. اما علامت‌های نقل‌قول جفتی برای پوسته (shell) کاراکتر خاص محسوب می‌شوند، بنابراین خود آن‌ها نیز باید نقل‌قول‌بندی شوند\&. بنابراین، برای استخراج یک جدول منفرد با نامی مرکب از حروف کوچک و بزرگ، به چیزی شبیه به این نیاز خواهید داشت .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-t "\e"MixedCaseName\e"" mydb > mytab\&.sql\fR .fi .if n \{\ .RE .\} .PP برای استخراج تمام جدول‌هایی که نام آن‌ها با mytable آغاز می‌شود، به استثنای جدول mytable2 یک فایل فیلتر به نام filter\&.txt را مانند زیر مشخص کنید:.sp .if n \{\ .RS 4 .\} .nf include table mytable* exclude table mytable2 .fi .if n \{\ .RE .\} .sp .sp .if n \{\ .RS 4 .\} .nf $ \fBpg_dump \-\-filter=filter\&.txt mydb > db\&.sql\fR .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" \fBpg_dumpall\fR(1), \fBpg_restore\fR(1), \fBpsql\fR(1)