pg_dump
Выгружает базу данных в виде скрипта или в архивном формате.
Синтаксис
pg_dump [<connection-option> ...] [<dump_option> ...] [<dbname>]
pg_dump -? | --help
pg_dump -V | --version
Описание
pg_dump — стандартная утилита PostgreSQL для резервного копирования базы данных, которая также поддерживается в Greengage DB.
Она создает один (непараллельный) дамп.
Для регулярных бэкапов Greengage DB рекомендуется использовать утилиты резервного копирования Greengage DB.
Используйте pg_dump, если переносите данные в другую СУБД или в другой кластер Greengage DB с отличающейся конфигурацией сегментов (например, если целевая система имеет большее или меньшее количество сегментов).
Для восстановления используйте утилиту pg_restore (если дамп в архивном формате) или клиентскую программу, такую как psql (если дамп в текстовом формате).
Поскольку pg_dump совместима с PostgreSQL, она может использоваться для миграции данных в Greengage DB.
Утилита pg_dump в Greengage DB очень похожа на утилиту pg_dump PostgreSQL, но имеет следующие особенности и ограничения:
-
Если вы используете
pg_dumpдля создания резервной копии базы данных Greengage DB, учитывайте, что операция выгрузки может занимать значительное время (несколько часов) для очень больших баз данных. Также убедитесь, что на диске достаточно свободного места для создания файла выгрузки. -
Если вы переносите данные из одного кластера Greengage DB в другой, используйте параметр командной строки
--gp-syntax, чтобы включить выражениеDISTRIBUTED BYв командыCREATE TABLE. Это обеспечит корректное распределение данных таблиц Greengage DB по соответствующим столбцам ключа распределения при восстановлении.
pg_dump выполняет логически целостную выгрузку, даже при одновременном обращении к базе других пользователей.
При этом pg_dump не блокирует других пользователей, обращающихся к базе данных (как для чтения, так и для записи).
При использовании одного из архивных форматов файлов в сочетании с pg_restore утилита pg_dump предоставляет гибкий механизм архивирования и переноса данных.
pg_dump можно использовать для выгрузки всей базы данных, а затем применять pg_restore для проверки архива и/или выборочного восстановления отдельных частей базы данных.
Наиболее гибкими форматами выходных файлов являются специальный формат (-Fc) и формат каталога (-Fd).
Они позволяют выбирать и изменять порядок всех архивных объектов, поддерживают параллельное восстановление и по умолчанию используют сжатие.
Формат каталога является единственным форматом, поддерживающим параллельные выгрузки.
Параметры
- <dbname>
-
Указывает имя базы данных для выгрузки. Если параметр не указан, используется значение переменной окружения
PGDATABASE. Если и она не задана, используется имя пользователя, указанное для подключения.
Параметры выгрузки
- -a | --data-only
-
Выгружает только данные без схемы (определений объектов). Выгружаются данные таблиц и значения последовательностей.
Этот параметр аналогичен указанию
--section=data, но по историческим причинам не полностью эквивалентен ему. - -b | --blobs
-
Включает большие объекты в выгрузку. Это поведение используется по умолчанию, за исключением случаев, когда указаны параметры
--schema,--tableили--schema-only. Параметр-bимеет смысл только для добавления больших объектов в выгрузки, в которых запрошена конкретная схема или таблица. Обратите внимание, что большие объекты считаются данными и включаются при использовании--data-only, но не включаются при использовании--schema-only.ПРИМЕЧАНИЕGreengage DB не поддерживает механизм больших объектов PostgreSQL для потоковой передачи пользовательских данных, хранящихся в структурах больших объектов.
- -c | --clean
-
Добавляет в текстовый выходной файл команды удаления объектов базы данных перед выводом команд их создания. При восстановлении могут появляться безвредные сообщения об ошибках, если какие-либо объекты отсутствуют в целевой базе данных. Обратите внимание, что объекты не удаляются до начала выгрузки, однако команды
DROPвключаются в выходной DDL-файл и при восстановлении выполняются перед соответствующими командамиCREATE. Параметр имеет смысл только для формата обычного текста. Для архивных форматов его следует указывать при вызовеpg_restore. - -C | --create
-
Начинает вывод с команды создания базы данных и переподключения к только что созданной базе. При использовании скрипта не имеет значения, к какой базе данных вы подключены в целевой системе перед запуском. Если также указан параметр
--clean, скрипт сначала удаляет целевую базу данных, а затем создает ее заново перед переподключением. Параметр имеет смысл только для формата обычного текста. Для архивных форматов его можно указать при вызовеpg_restore. - -E <encoding> | --encoding=<encoding>
-
Создает выгрузку в указанной кодировке символов. По умолчанию используется кодировка базы данных. Альтернативный способ получить тот же результат — установить переменную окружения
PGCLIENTENCODINGв требуемую кодировку выгрузки. - -f <file> | --file=<file>
-
Направляет вывод в указанный файл. Для файловых форматов этот параметр можно опустить — тогда используется стандартный вывод. Для формата вывода в виде каталога параметр обязателен: он задает целевой каталог, а не отдельный файл. Каталог создается утилитой
pg_dumpи не должен существовать заранее. - -F p|c|d|t | --format=plain|custom|directory|tar
-
Выбирает формат вывода.
formatможет быть одним из следующих:- p | plain
-
Создает SQL-скрипт в текстовом формате (по умолчанию).
- c | custom
-
Создает специальный архив, пригодный для использования с
pg_restore. В сочетании с форматом каталога это наиболее гибкий формат, так как позволяет вручную выбирать и изменять порядок элементов архива при восстановлении. По умолчанию архив сжат и поддерживает параллельные выгрузки. - d | directory
-
Создает архив в формате каталога, пригодный для использования с
pg_restore. Формируется каталог с отдельным файлом для каждой выгружаемой таблицы и большого объекта, а также файл оглавления, описывающий содержимое архива в машиночитаемом формате, который может прочитатьpg_restore. Файлы архива в формате каталога можно обрабатывать стандартными инструментами Unix; например, несжатые файлы можно сжать с помощьюgzip. По умолчанию архив сжат. - t | tar
-
Создает архив в формате
tar, пригодный для использования сpg_restore. Форматtarсовместим с форматом каталога; извлечение архива в форматеtarсоздает архив в формате каталога. Однако форматtarне поддерживает сжатие. Кроме того, при использовании форматаtarотносительный порядок элементов данных таблиц нельзя изменить во время восстановления.
- -j <njobs> | --jobs=<njobs>
-
Выполняет параллельную выгрузку, обрабатывая одновременно
njobsтаблиц. Этот параметр сокращает время выгрузки, но увеличивает нагрузку на сервер баз данных. Параметр можно использовать только с форматом вывода в виде каталога, так как это единственный формат, позволяющий нескольким процессам одновременно записывать свои данные.ПРИМЕЧАНИЕПараллельные выгрузки с использованием
pg_dumpвыполняются только на узле диспетчера запросов (мастер), а не на узлах исполнителей (сегментах), как это происходит при использованииgpbackup.pg_dumpоткроетnjobs + 1подключений к базе данных, поэтому убедитесь, что значение параметраmax_connectionsдостаточно для всех подключений.Запрос эксклюзивных блокировок объектов базы данных во время параллельной выгрузки может привести к сбою операции. Главный процесс
pg_dumpзапрашивает разделяемые блокировки объектов, которые позже будут выгружать процессы-обработчики, чтобы гарантировать, что объекты не будут удалены или изменены во время выгрузки. Если другой клиент запрашивает эксклюзивную блокировку таблицы, она помещается в очередь до освобождения разделяемой блокировки главного процесса. В результате любые другие запросы к таблице также блокируются и помещаются в очередь после запроса на эксклюзивную блокировку. Это касается и процесса-обработчика, пытающегося выгрузить таблицу, что без мер предосторожности может привести к классической ситуации взаимоблокировки. Чтобы выявить такой конфликт, процесс-обработчикpg_dumpзапрашивает дополнительную разделяемую блокировку с параметромNOWAIT. Если блокировка не предоставляется, значит, другой клиент запросил эксклюзивную блокировку, и продолжить выгрузку невозможно, поэтомуpg_dumpотменяет операцию.Для согласованного создания бэкапа сервер баз данных должен поддерживать синхронизированные снепшоты. С их помощью клиенты базы данных могут быть уверены, что видят один и тот же набор данных, даже при использовании разных подключений. При использовании
pg_dump -jсоздается несколько подключений: одно — для главного процесса, и по одному для каждого процесса-обработчика. Без синхронизированных снепшотов процессам-обработчикам не гарантируется, что они будут видеть одинаковые данные на всех подключениях, что может привести к несогласованному бэкапу. - -n <schema> | --schema=<schema>
-
Выгружает только схемы, соответствующие указанному шаблону, включая все объекты внутри них. Если параметр не указан, выгружаются все несистемные схемы целевой базы данных. Для выбора нескольких схем можно использовать несколько параметров
-n. Параметр также интерпретируется как шаблон по тем же правилам, что применяются в командах\dвpsql, поэтому можно указать несколько схем с помощью символов подстановки. При использовании символов подстановки заключайте шаблон в кавычки, чтобы предотвратить их раскрытие оболочкой.ПРИМЕЧАНИЕПри указании
-npg_dumpне выгружает объекты базы данных, от которых могут зависеть выбранные схемы. Поэтому нет гарантии, что выгрузку конкретной схемы можно будет успешно восстановить в пустую базу данных. - -N <schema> | --exclude-schema=<schema>
-
Исключает из выгрузки схемы, соответствующие указанному шаблону. Шаблон интерпретируется по тем же правилам, что и для
-n. Параметр-Nможно использовать несколько раз для исключения схем, соответствующих любому из нескольких шаблонов. Если указаны оба параметра-nи-N, выгружаются только схемы, которые соответствуют хотя бы одному-n, но не соответствуют ни одному-N. Если-Nиспользуется без-n, схемы, соответствующие-N, исключаются из стандартной выгрузки. - -o | --oids
-
Включает идентификаторы объектов (OID) в данные каждой таблицы при выгрузке. Использование этого параметра не рекомендуется для файлов, которые планируется восстанавливать в Greengage DB.
- -O | --no-owner
-
Не включает команды для установки владельца объектов в соответствии с исходной базой данных. По умолчанию
pg_dumpдобавляет операторыALTER OWNERилиSET SESSION AUTHORIZATION, чтобы установить владельца созданных объектов. Эти команды вызовут ошибку при запуске скрипта, если он выполняется не суперпользователем или не пользователем, который владеет всеми объектами в скрипте. Чтобы создать скрипт, который может быть восстановлен любым пользователем и при этом назначит этому пользователю владение всеми объектами, используйте-O. Параметр имеет смысл только для формата обычного текста. Для архивных форматов его можно указать при вызовеpg_restore. - -s | --schema-only
-
Выгружает только определения объектов (схему), без данных.
Этот параметр противоположен
--data-only. Он похож на указание--section=pre-data --section=post-data, но по историческим причинам не идентичен ему.Не путать с параметром
--schema, который использует "схема" в другом значении.Чтобы исключить данные только для определенных таблиц в базе данных, используйте
--exclude-table-data. - -S <username> | --superuser=<username>
-
Задает имя суперпользователя для использования при деактивации триггеров. Актуально только при использовании параметра
--disable-triggers. Рекомендуется не указывать этот параметр и вместо этого запускать полученный скрипт от имени суперпользователя.ПРИМЕЧАНИЕGreengage DB не поддерживает пользовательские триггеры.
- -t <table> | --table=<table>
-
Выгружает только таблицы (или представления, последовательности, сторонние таблицы), соответствующие указанному шаблону. Имя таблицы указывается в формате
schema.table.Можно выбрать несколько таблиц, указав несколько параметров
-t. Параметр интерпретируется как шаблон по тем же правилам, что и команды\dвpsql, поэтому для выбора нескольких таблиц можно использовать символы подстановки. При использовании символов подстановки заключайте шаблон в кавычки, чтобы избежать их раскрытия оболочкой. Переключатели-nи-Nне влияют на выборку таблиц с помощью-t, так как только указанные таблицы будут выгружены, а остальные объекты базы данных — нет.ПРИМЕЧАНИЕКогда используется
-t,pg_dumpне пытается выгружать другие объекты базы данных, от которых могут зависеть выбранные таблицы. Поэтому нет гарантии, что результаты выгрузки конкретной таблицы можно успешно восстановить в пустую базу данных.Также
-tнельзя использовать для указания дочерней партиции таблицы. Чтобы выгрузить партиционированную таблицу, вы должны указать имя родительской таблицы. - -T <table> | --exclude-table=<table>
-
Исключает из выгрузки все таблицы, соответствующие указанному шаблону. Шаблон интерпретируется так же, как для параметра
-t. Параметр-Tможно указать несколько раз, чтобы исключить таблицы, соответствующие любому из шаблонов.Если указаны одновременно
-tи-T, будут выгружены только таблицы, соответствующие хотя бы одному-t, но не совпадающие ни с одним-T. Если указан только-T, то соответствующие ему таблицы исключаются из обычной выгрузки. - -v | --verbose
-
Включает подробный режим вывода. В этом режиме
pg_dumpвыводит детальные комментарии к объектам и время начала/окончания в дампе, а сообщения о ходе выполнения — в стандартный поток ошибок. - -V | --version
-
Выводит версию
pg_dumpи завершает работу. - -x | --no-privileges | --no-acl
-
Не включает в выгрузку привилегии доступа (команды
GRANT/REVOKE). - -Z 0..9 | --compress=0..9
-
Задает уровень сжатия для выгрузки. Значение
0означает отсутствие сжатия.Для специального архивного формата управляет сжатием отдельных сегментов данных таблиц; по умолчанию используется средний уровень сжатия. При выводе в обычный текст ненулевой уровень сжатия приводит к сжатию всего файла, как если бы он был пропущен через
gzip; по умолчанию сжатие не выполняется. Архивный форматtarв настоящее время не поддерживает сжатие. - --binary-upgrade
-
Параметр предназначен для использования утилитами обновления на месте. Использование его для других целей не рекомендуется и не поддерживается.
- --column-inserts | --attribute-inserts
-
Выгружает данные в виде команд
INSERTс явным указанием имен столбцов (INSERT INTO <table> (<column>, …) VALUES …). Это делает восстановление значительно медленнее и в основном полезно для выгрузок, предназначенных для баз данных, несовместимых с PostgreSQL. При этом каждая строка создается отдельной командой, поэтому ошибка при загрузке затронет только эту строку, а не всю таблицу. - --disable-dollar-quoting
-
Отключает использование долларовых кавычек для тел функций и принудительно применяет обычные строковые литералы SQL.
- --disable-triggers
-
Применяется только при выгрузке данных (
--data-only). Указываетpg_dumpвключить команды для временной деактивации триггеров в целевых таблицах при перезагрузке данных. Используется, если в таблицах есть триггеры, которые не должны срабатывать во время загрузки. Команды для--disable-triggersдолжны выполняться от имени суперпользователя. Либо укажите имя суперпользователя через-S, либо предпочтительнее запустите скрипт напрямую от имени суперпользователя. Параметр применим только для обычного текстового формата. Для архивных форматов его можно указать при вызовеpg_restore.ПРИМЕЧАНИЕGreengage DB не поддерживает пользовательские триггеры.
- --exclude-table-data=<table>
-
Исключает данные из выгрузки для всех таблиц, соответствующих указанному шаблону. Шаблон интерпретируется так же, как для параметра
-t. Параметр можно указать несколько раз, чтобы исключить таблицы по разным шаблонам. Это полезно, когда требуется сохранить определения таблиц, но не их данные.Для исключения данных всех таблиц в базе используйте
--schema-only. - --if-exists
-
Добавляет выражение
IF EXISTSк командам удаления объектов базы данных. Применяется только вместе с параметром--clean. - --inserts
-
Выгружает данные в виде команд
INSERTвместоCOPY. Это замедляет восстановление, но полезно для выгрузок, которые необходимо загрузить в СУБД, отличную от PostgreSQL. Так как для каждой строки создается отдельная команда, ошибка при восстановлении затронет только эту строку, а не всю таблицу. Обратите внимание: восстановление может полностью не выполниться при изменении порядка столбцов. Параметр--column-insertsбезопасен относительно изменения порядка столбцов, но еще медленнее. - --lock-wait-timeout=<timeout>
-
Задает максимальное время ожидания получения разделяемой блокировки таблиц в начале выгрузки. Если таблица не будет заблокирована в течение указанного времени (в миллисекундах), выгрузка завершится с ошибкой.
- --no-security-labels
-
Не выгружает метки безопасности.
- --no-tablespaces
-
Не выводит команды для выбора табличных пространств. С этим параметром все объекты будут созданы в том табличном пространстве, которое используется по умолчанию во время восстановления.
Этот параметр имеет смысл только для формата обычного текста. Для архивных форматов вы можете указать параметр при вызове
pg_restore. - --no-unlogged-table-data
-
Не выгружает данные из нежурналируемых таблиц. Определения таблиц (схема) выгружаются как обычно; содержимое таблиц при этом не экспортируется. При выгрузке с резервного сервера данные из нежурналируемых таблиц всегда исключаются.
- --quote-all-identifiers
-
Принудительно заключает все идентификаторы в кавычки. Рекомендуется использовать при выгрузке базы данных с сервера, основная версия Greengage DB которого отличается от версии
pg_dump, или если выгрузка предназначена для загрузки на сервер другой основной версии. По умолчаниюpg_dumpзаключает в кавычки только идентификаторы, являющиеся зарезервированными словами в его текущей версии. Это может вызвать проблемы совместимости с серверами других версий, у которых набор зарезервированных слов отличается. Использование--quote-all-identifiersпредотвращает такие проблемы, хотя делает скрипт выгрузки менее читаемым. - --section=<sectionname>
-
Выгружает только указанную секцию. Имя секции может быть
pre-data,dataилиpost-data. Этот параметр можно указать более одного раза для выбора нескольких секций. По умолчанию выгружаются все секции.Секция
dataсодержит фактические данные таблиц и значения последовательностей. Секцияpost-dataвключает определения индексов, триггеров, правил и ограничений, кроме проверокCHECK. Секцияpre-dataвключает все остальные элементы определения объектов базы данных. - --serializable-deferrable
-
Использует сериализуемую транзакцию для выгрузки, чтобы гарантировать, что используемый снепшот согласован с последующими состояниями базы данных; делает это путем ожидания точки в потоке транзакций, в которой не могут присутствовать аномалии, так что нет риска сбоя выгрузки или отката других транзакций с ошибкой
serialization_failure.Этот параметр не имеет смысла для выгрузки, предназначенной только для аварийного восстановления. Он может быть полезен для выгрузки, используемой для загрузки копии базы данных для отчетности или другого распределения нагрузки только для чтения, пока исходная база данных продолжает обновляться. Без него выгрузка может отражать состояние, не согласующееся с каким-либо последовательным выполнением транзакций, в конечном итоге зафиксированных. Например, при пакетной обработке пакет может отображаться как закрытый без появления всех элементов, находящихся в пакете.
Этот параметр не имеет эффекта, если при запуске
pg_dumpнет активных транзакций чтения-записи. Если транзакции чтения-записи активны, начало выгрузки может быть задержано на неопределенное время. После запуска производительность с параметром или без него одинакова.ПРИМЕЧАНИЕПоскольку Greengage DB не поддерживает сериализуемые транзакции, параметр
--serializable-deferrableне имеет эффекта в Greengage DB. - --use-set-session-authorization
-
Выводит команды SQL-стандарта
SET SESSION AUTHORIZATIONвместоALTER OWNERдля установки владения объектами. Это повышает совместимость со стандартами, но может привести к некорректному восстановлению в зависимости от истории объектов. Выгрузка сSET SESSION AUTHORIZATIONпотребует привилегий суперпользователя для корректного восстановления, тогда какALTER OWNERтребует меньших привилегий. - --gp-syntax | --no-gp-syntax
-
Используйте
--gp-syntaxдля включения синтаксиса Greengage DB в операторахCREATE TABLE. Это позволяет экспортировать политику распределения (выраженияDISTRIBUTED BYилиDISTRIBUTED RANDOMLY) таблиц Greengage DB, что важно при восстановлении в других кластерах Greengage DB. По умолчанию синтаксис Greengage DB включается при подключении к кластеру Greengage DB и исключается при подключении к PostgreSQL. - --function-oids <oids>
-
Выгружает функции, указанные списком идентификаторов объектов (OIDs).
ПРИМЕЧАНИЕПараметр предназначен только для использования другими административными утилитами; его применение для любых других целей не рекомендуется и не поддерживается.
- --relation-oids <oids>
-
Выгружает отношения, указанные списком идентификаторов объектов (OIDs).
ПРИМЕЧАНИЕПараметр предназначен исключительно для использования другими административными утилитами; его применение для любых других целей не рекомендуется и не поддерживается.
- -? | --help
-
Отображает справку по аргументам командной строки
pg_dumpи завершает работу.
Параметры подключения
- -d <dbname> | --dbname=<dbname>
-
Указывает имя базы данных для подключения. Это эквивалентно указанию
dbnameв качестве первого позиционного аргумента в командной строке.Если параметр содержит знак
=или начинается с URI-префикса (postgresql://илиpostgres://), он обрабатывается как строкаconninfo. Дополнительную информацию см. в разделе Connection Strings документации PostgreSQL. - -h <host> | --host=<host>
-
Имя хоста, на котором работает мастер Greengage DB. Если параметр не указан, читается из переменной окружения
PGHOST; по умолчанию используетсяlocalhost. - -p <port> | --port=<port>
-
TCP-порт, на котором мастер Greengage DB прослушивает подключения. Если параметр не указан, читается из переменной окружения
PGPORT; по умолчанию используется порт5432. - -U <username> | --username=<username>
-
Имя роли базы данных для подключения. Если параметр не указан, читается из переменной окружения
PGUSER; по умолчанию используется имя текущей системной роли. - -W | --password
-
Принудительно запрашивает пароль при подключении.
- -w | --no-password
-
Никогда не запрашивает пароль. Если сервер требует аутентификацию по паролю, а пароль недоступен другими способами (например, через файл .pgpass), попытка подключения завершится неудачей. Этот параметр удобен для пакетных заданий и скриптов, где нет пользователя для ввода пароля.
- --role=<rolename>
-
Указывает роль, которая будет использоваться для создания выгрузки. После подключения к базе данных
pg_dumpвыполнит командуSET ROLE rolename. Это полезно, когда аутентифицированному пользователю (через-U) не хватает прав, необходимыхpg_dump, но он может переключиться на роль с нужными привилегиями. Некоторые инсталляции ограничивают прямой вход от имени суперпользователя; использование этого параметра позволяет создавать выгрузки, соблюдая политику безопасности.
Примечания
При выгрузке только данных с использованием параметра --disable-triggers pg_dump генерирует команды для временной деактивации триггеров в пользовательских таблицах перед вставкой данных и команды для их повторной активации после вставки.
Если восстановление прервется на середине, системные каталоги могут остаться в несогласованном состоянии.
Дамп, созданный pg_dump, не содержит статистику, используемую оптимизатором для планирования запросов.
Поэтому рекомендуется выполнить ANALYZE после восстановления из файла выгрузки для обеспечения оптимальной производительности.
Активность pg_dump обычно отслеживается сборщиком статистики.
Если это нежелательно, можно установить параметр track_counts в false через PGOPTIONS или команду ALTER USER.
Так как pg_dump может использоваться для переноса данных в более новые версии Greengage DB, вывод pg_dump можно загружать в версии Greengage DB, новее версии самой утилиты.
pg_dump также поддерживает выгрузку из более старых версий Greengage DB.
Однако утилита не позволяет выгружать из версий, новее своей основной версии — она откажется выполнять операцию, чтобы не создавать недействительную выгрузку.
Кроме того, нет гарантии, что выгрузка будет корректно загружена на сервер более ранней версии.
Загрузка файла выгрузки на сервер с более ранней версией Greengage DB может потребовать ручного редактирования для удаления синтаксиса, не поддерживаемого этой версией.
Использование параметра --quote-all-identifiers рекомендуется при переносе между версиями, так как оно предотвращает проблемы, связанные с различиями в списках зарезервированных слов в разных версиях Greengage DB.
Примеры
Выгрузить базу данных с именем mydb в файл SQL-скрипта:
$ pg_dump mydb > db.sql
Восстановить такой скрипт в только что созданную базу данных newdb:
$ psql -d newdb -f db.sql
Выгрузить Greengage DB в формате tar с информацией о политике распределения:
$ pg_dump -Ft --gp-syntax mydb > db.tar
Выгрузить базу данных в архив специального формата:
$ pg_dump -Fc mydb > db.dump
Выгрузить базу данных в архив в формате каталога:
$ pg_dump -Fd mydb -f dumpdir
Выгрузить базу данных в архив в формате каталога параллельно с 5 процессами:
$ pg_dump -Fd mydb -j 5 -f dumpdir
Восстановить архивный файл в (только что созданную) базу данных newdb:
$ pg_restore -d newdb db.dump
Выгрузить одну таблицу mytab:
$ pg_dump -t mytab mydb > db.sql
Чтобы указать имя в верхнем или смешанном регистре в -t и связанных переключателях, заключайте его в двойные кавычки.
Но двойные кавычки являются специальными для оболочки, поэтому в свою очередь они должны быть заключены в одинарные кавычки.
Например, для таблицы с именем в смешанном регистре:
$ pg_dump -t '"MixedCaseName"' mydb > mytab.sql