pg_restore

pg_restore — restaura una base de datos de PostgreSQL a partir de un archivo comprimido o de archivo (archive) creado por pg_dump

Synopsis

pg_restore [connection-option...] [option...] [filename]

Descripción

pg_restore es una utilidad para restaurar una base de datos PostgreSQL a partir de un archivo comprimido o de archivo (archive) creado por pg_dump en uno de los formatos que no son texto plano. Emitirá los comandos necesarios para reconstruir la base de datos al estado en que se encontraba en el momento en que se guardó. Los archivos de archivo también permiten a pg_restore ser selectivo sobre lo que se restaura, o incluso reordenar los elementos antes de ser restaurados. Los archivos de archivo están diseñados para ser portables entre arquitecturas.

pg_restore puede funcionar en dos modos. Si se especifica un nombre de base de datos, pg_restore se conecta a esa base de datos y restaura el contenido del archivo directamente en la base de datos. De lo contrario, se crea un script que contiene los comandos SQL necesarios para reconstruir la base de datos y se escribe en un archivo o en la salida estándar. Esta salida de script es equivalente al formato de salida de texto plano de pg_dump. Algunas de las opciones que controlan la salida son, por lo tanto, análogas a las opciones de pg_dump.

Obviamente, pg_restore no puede restaurar información que no esté presente en el archivo de archivo. Por ejemplo, si el archivo se creó utilizando la opción de exportar datos como comandos INSERT, pg_restore no podrá cargar los datos utilizando sentencias COPY.

Warning

Restaurar una copia de seguridad hace que el destino ejecute código arbitrario a elección de los superusuarios de origen. Las exportaciones parciales y las restauraciones parciales no limitan esto. Si no se confía en los superusuarios de origen, se deben inspeccionar las sentencias SQL exportadas antes de restaurar. Las exportaciones que no son de texto plano se pueden inspeccionar utilizando la opción --file de pg_restore. Ten en cuenta que el cliente que ejecuta la copia de seguridad y la restauración no necesita confiar en los superusuarios de origen o de destino.

Opciones

pg_restore acepta los siguientes argumentos de línea de comandos.

filename

Especifica la ubicación del archivo de archivo (o directorio, para un archivo en formato de directorio) que se va a restaurar. Si no se especifica, se utiliza la entrada estándar.

-a
--data-only

Restaura solo los datos, no el esquema (definiciones de datos) ni las estadísticas. Se restauran los datos de las tablas, los objetos grandes (large objects) y los valores de las secuencias, si están presentes en el archivo.

Esta opción es similar a especificar --section=data, pero por razones históricas no es idéntica.

-c
--clean

Antes de restaurar los objetos de la base de datos, emite comandos para eliminar (DROP) todos los objetos que se van a restaurar. Esta opción es útil para sobrescribir una base de datos existente. Si alguno de los objetos no existe en la base de datos de destino, se informarán mensajes de error ignorables, a menos que también se especifique --if-exists.

-C
--create

Crea la base de datos antes de restaurar en ella. Si también se especifica --clean, elimina y vuelve a crear la base de datos de destino antes de conectarse a ella.

Con --create, pg_restore también restaura el comentario de la base de datos, si lo hay, y cualquier configuración de variable de configuración específica de esta base de datos, es decir, cualquier comando ALTER DATABASE ... SET ... y ALTER ROLE ... IN DATABASE ... SET ... que mencione esta base de datos. También se restauran los privilegios de acceso para la propia base de datos, a menos que se especifique --no-acl.

Cuando se utiliza esta opción, la base de datos nombrada con -d se utiliza únicamente para emitir los comandos iniciales DROP DATABASE y CREATE DATABASE. Todos los datos se restauran en la base de datos cuyo nombre aparece en el archivo.

-d dbname
--dbname=dbname

Se conecta a la base de datos dbname y restaura directamente en ella. El dbname puede ser una cadena de conexión. Si es así, los parámetros de la cadena de conexión anularán cualquier opción de línea de comandos en conflicto.

-e
--exit-on-error

Termina si se encuentra un error al enviar comandos SQL a la base de datos. Por defecto se continúa y se muestra un recuento de errores al final de la restauración.

-f filename
--file=filename

Especifica el archivo de salida para el script generado, o para el listado cuando se utiliza con -l. Utiliza - para la salida estándar (stdout).

-F format
--format=format

Especifica el formato del archivo. No es necesario especificar el formato, ya que pg_restore lo determinará automáticamente. Si se especifica, puede ser uno de los siguientes:

c
custom

El archivo está en el formato personalizado de pg_dump.

d
directory

El archivo es un archivo de directorio (directory archive).

t
tar

El archivo es un archivo tar.

-I index
--index=index

Restaura únicamente la definición del índice nombrado. Se pueden especificar múltiples índices con múltiples opciones -I.

-j number-of-jobs
--jobs=number-of-jobs

Ejecuta los pasos que consumen más tiempo de pg_restore (aquellos que cargan datos, crean índices o crean restricciones) de forma concurrente, utilizando hasta number-of-jobs sesiones concurrentes. Esta opción puede reducir drásticamente el tiempo para restaurar una base de datos grande en un servidor que se ejecuta en una máquina multiprocesador. Esta opción se ignora cuando se genera un script en lugar de conectarse directamente a un servidor de bases de datos.

Cada tarea (job) es un proceso o un hilo de ejecución (thread), dependiendo del sistema operativo, y utiliza una conexión independiente al servidor.

El valor óptimo para esta opción depende de la configuración de hardware del servidor, del cliente y de la red. Los factores incluyen el número de núcleos de CPU y la configuración del disco. Un buen punto de partida es el número de núcleos de CPU en el servidor, pero valores mayores que ese también pueden llevar a tiempos de restauración más rápidos en muchos casos. Por supuesto, valores demasiado altos llevarán a una disminución del rendimiento debido a la sobrecarga por paginación (thrashing).

Con esta opción solo se admiten los formatos de archivo personalizado y de directorio. La entrada debe ser un archivo regular o un directorio (no, por ejemplo, una tubería o la entrada estándar). Además, no se pueden utilizar múltiples tareas junto con la opción --single-transaction.

-l
--list

Muestra la tabla de contenidos (TOC) del archivo. La salida de esta operación se puede utilizar como entrada para la opción -L. Ten en cuenta que si se utilizan opciones de filtrado como -n o -t con -l, estas restringirán los elementos listados.

-L list-file
--use-list=list-file

Restaura únicamente los elementos del archivo que están listados en el list-file, y los restaura en el orden en que aparecen en el archivo. Ten en cuenta que si se utilizan opciones de filtrado como -n o -t con -L, estas restringirán aún más los elementos restaurados.

El list-file se crea normalmente editando la salida de una operación -l anterior. Las líneas se pueden mover o eliminar, y también se pueden comentar colocando un punto y coma (;) al principio de la línea. Véanse los ejemplos más abajo.

-n schema
--schema=schema

Restaura únicamente los objetos que están en el esquema nombrado. Se pueden especificar múltiples esquemas con múltiples opciones -n. Esto se puede combinar con la opción -t para restaurar solo una tabla específica.

-N schema
--exclude-schema=schema

No restaura los objetos que están en el esquema nombrado. Se pueden especificar múltiples esquemas a excluir con múltiples opciones -N.

Cuando se proporcionan tanto -n como -N para el mismo nombre de esquema, la opción -N prevalece y el esquema es excluido.

-O
--no-owner

No genera comandos para establecer la propiedad de los objetos de modo que coincida con la base de datos original. Por defecto, pg_restore emite sentencias ALTER OWNER o SET SESSION AUTHORIZATION para establecer la propiedad de los elementos de esquema creados. Estas sentencias fallarán a menos que la conexión inicial a la base de datos la realice un superusuario (o el mismo usuario que es propietario de todos los objetos en el script). Con -O, se puede usar cualquier nombre de usuario para la conexión inicial, y este usuario será el propietario de todos los objetos creados.

-P function-name(argtype [, ...])
--function=function-name(argtype [, ...])

Restaura únicamente la función nombrada. Asegúrate de escribir el nombre de la función y los argumentos exactamente como aparecen en la tabla de contenidos del archivo de exportación. Se pueden especificar múltiples funciones con múltiples opciones -P.

-R
--no-reconnect

Esta opción está obsoleta pero aún se acepta por compatibilidad hacia atrás.

-s
--schema-only

Restaura únicamente el esquema (definiciones de datos), no los datos, en la medida en que las entradas del esquema estén presentes en el archivo.

Esta opción no se puede usar con --data-only ni con --statistics-only. Es similar a especificar --section=pre-data --section=post-data --no-statistics, pero por razones históricas no es idéntica.

(No confundas esto con la opción --schema, que utiliza la palabra esquema con un significado diferente).

-S username
--superuser=username

Especifica el nombre de usuario del superusuario a utilizar al desactivar los disparadores. Esto solo es relevante si se utiliza --disable-triggers.

-t table
--table=table

Restaura la definición y/o los datos de únicamente la tabla nombrada. Para este propósito, tabla incluye vistas, vistas materializadas, secuencias y tablas extranjeras. Se pueden seleccionar múltiples tablas escribiendo múltiples opciones -t. Esta opción se puede combinar con la opción -n para especificar tablas en un esquema particular.

Note

Cuando se especifica -t, pg_restore no intenta restaurar ningún otro objeto de la base de datos del cual puedan depender las tablas seleccionadas. Por lo tanto, no hay garantía de que la restauración de una tabla específica en una base de datos limpia tenga éxito.

Note

Esta opción no se comporta de forma idéntica a la opción -t de pg_dump. Actualmente no existe ninguna disposición para la coincidencia de comodines en pg_restore, ni se puede incluir un nombre de esquema dentro de su -t. Y, mientras que la opción -t de pg_dump también exportará objetos subsidiarios (como índices) de las tablas seleccionadas, la opción -t de pg_restore no incluye dichos objetos subsidiarios.

Note

En versiones anteriores a PostgreSQL 9.6, esta opción coincidía solo con tablas, no con ningún otro tipo de relación.

-T trigger
--trigger=trigger

Restaura únicamente el disparador (trigger) nombrado. Se pueden especificar múltiples disparadores con múltiples opciones -T.

-v
--verbose

Activa el modo detallado. Esto hará que pg_restore escriba comentarios detallados de los objetos y tiempos de inicio/finalización en el archivo de salida, y mensajes de progreso en la salida de error estándar. Repetir la opción hace que aparezcan mensajes adicionales de nivel de depuración (debug) en la salida de error estándar.

-V
--version

Muestra la versión de pg_restore y termina.

-x
--no-privileges
--no-acl

Evita la restauración de privilegios de acceso (comandos grant/revoke).

-1
--single-transaction

Ejecuta la restauración como una única transacción (es decir, envuelve los comandos emitidos en BEGIN/COMMIT). Esto asegura que o bien todos los comandos se completen con éxito, o no se aplique ningún cambio. Esta opción implica --exit-on-error.

--disable-triggers

Esta opción solo es relevante cuando se realiza una restauración sin esquema. Indica a pg_restore que ejecute comandos para desactivar temporalmente los disparadores (triggers) en las tablas de destino mientras se restauran los datos. Utiliza esto si tienes comprobaciones de integridad referencial u otros disparadores en las tablas que no deseas invocar durante la restauración de datos.

Actualmente, los comandos emitidos para --disable-triggers deben realizarse como superusuario. Por lo tanto, también deberías especificar un nombre de superusuario con -S o, preferiblemente, ejecutar pg_restore como superusuario de PostgreSQL.

--enable-row-security

Esta opción solo es relevante al restaurar el contenido de una tabla que tiene seguridad a nivel de fila (row security). Por defecto, pg_restore establecerá row_security en off, para asegurar que todos los datos se restauren en la tabla. Si el usuario no tiene privilegios suficientes para omitir la seguridad a nivel de fila, se produce un error. Este parámetro indica a pg_restore que establezca row_security en on en su lugar, permitiendo al usuario intentar restaurar el contenido de la tabla con la seguridad a nivel de fila habilitada. Esto podría fallar de todos modos si el usuario no tiene el derecho de insertar las filas de la copia de seguridad en la tabla.

Ten en cuenta que esta opción actualmente también requiere que la copia de seguridad esté en formato INSERT, ya que COPY FROM no admite seguridad a nivel de fila.

--filter=filename

Especifica un nombre de archivo del cual leer patrones para objetos excluidos o incluidos en la restauración. Los patrones se interpretan de acuerdo con las mismas reglas que -n/--schema para incluir objetos en esquemas, -N/--exclude-schema para excluir objetos en esquemas, -P/--function para restaurar funciones nombradas, -I/--index para restaurar índices nombrados, -t/--table para restaurar tablas nombradas o -T/--trigger para restaurar disparadores. Para leer desde la entrada estándar (STDIN), utiliza - como nombre de archivo. La opción --filter se puede especificar en conjunción con las opciones enumeradas anteriormente para incluir o excluir objetos, y también se puede especificar más de una vez para múltiples archivos de filtro.

El archivo enumera un patrón de base de datos por fila, con el siguiente formato:

{ include | exclude } { function | index | schema | table | trigger } PATTERN

La primera palabra clave especifica si los objetos que coinciden con el patrón deben incluirse o excluirse. La segunda palabra clave especifica el tipo de objeto que se va a filtrar mediante el patrón:

  • function: funciones, funciona como la opción -P/--function. Esta palabra clave solo se puede usar con la palabra clave include.

  • index: índices, funciona como la opción -I/--indexes. Esta palabra clave solo se puede usar con la palabra clave include.

  • schema: esquemas, funciona como las opciones -n/--schema y -N/--exclude-schema.

  • table: tablas, funciona como la opción -t/--table. Esta palabra clave solo se puede usar con la palabra clave include.

  • trigger: disparadores, funciona como la opción -T/--trigger. Esta palabra clave solo se puede usar con la palabra clave include.

Las líneas que comienzan con # se consideran comentarios y se ignoran. También se pueden colocar comentarios después de una fila de patrón de objeto. Las líneas en blanco también se ignoran. Véase Patterns para saber cómo realizar el entrecomillado en los patrones.

--if-exists

Utiliza comandos DROP ... IF EXISTS para eliminar objetos en el modo --clean. Esto suprime los errores de no existe que de otro modo podrían reportarse. Esta opción no es válida a menos que también se especifique --clean.

--no-comments

No genera comandos para restaurar comentarios, incluso si el archivo los contiene.

--no-data

No genera comandos para restaurar datos, incluso si el archivo los contiene.

--no-data-for-failed-tables

Por defecto, los datos de las tablas se restauran incluso si el comando de creación de la tabla falló (por ejemplo, porque ya existe). Con esta opción, se omiten los datos de dicha tabla. Este comportamiento es útil si la base de datos de destino ya contiene el contenido deseado de la tabla. Por ejemplo, las tablas auxiliares para extensiones de PostgreSQL como PostGIS ya podrían estar cargadas en la base de datos de destino; especificar esta opción evita que se carguen datos duplicados u obsoletos en ellas.

Esta opción solo es efectiva cuando se restaura directamente en una base de datos, no cuando se genera una salida de script SQL.

--no-policies

No genera comandos para restaurar políticas de seguridad a nivel de fila, incluso si el archivo las contiene.

--no-publications

No genera comandos para restaurar publicaciones, incluso si el archivo los contiene.

--no-schema

No genera comandos para restaurar el esquema (definiciones de datos), incluso si el archivo los contiene.

--no-security-labels

No genera comandos para restaurar etiquetas de seguridad, incluso si el archivo las contiene.

--no-statistics

No genera comandos para restaurar estadísticas, incluso si el archivo las contiene.

--no-subscriptions

No genera comandos para restaurar suscripciones, incluso si el archivo las contiene.

--no-table-access-method

No genera comandos para seleccionar métodos de acceso a tablas. Con esta opción, todos los objetos se crearán con cualquier método de acceso a tablas que sea el predeterminado durante la restauración.

--no-tablespaces

No genera comandos para seleccionar tablespaces. Con esta opción, todos los objetes se crearán en cualquier tablespace que sea el predeterminado durante la restauración.

--restrict-key=restrict_key

Utiliza la cadena proporcionada como la clave \restrict de psql en la salida de la copia de seguridad. Esto solo se puede especificar para la salida de script SQL, es decir, cuando se utiliza la opción --file. Si no se especifica ninguna clave de restricción, pg_restore generará una aleatoria según sea necesario. Las claves pueden contener únicamente caracteres alfanuméricos.

Esta opción está destinada principalmente a fines de prueba y otros escenarios que requieren una salida repetible (por ejemplo, comparar archivos de copia de seguridad). No se recomienda para uso general, ya que un servidor malicioso con conocimiento previo de la clave podría inyectar código arbitrario que se ejecutará en la máquina que ejecuta psql con la salida de la copia de seguridad.

--section=sectionname

Restaura únicamente la sección nombrada. El nombre de la sección puede ser pre-data, data o post-data. Esta opción se puede especificar más de una vez para seleccionar múltiples secciones. Por defecto se restauran todas las secciones.

La sección data contiene los datos reales de las tablas así como las definiciones de objetos grandes (large objects). Los elementos post-data consisten en definiciones de índices, disparadores (triggers), reglas y restricciones que no sean restricciones de verificación (check constraints) validadas. Los elementos pre-data consisten en todos los demás elementos de definición de datos.

--statistics

Genera comandos para restaurar estadísticas, si el archivo las contiene. Este es el comportamiento por defecto.

--statistics-only

Restaura únicamente las estadísticas, no el esquema (definiciones de datos) ni los datos.

--strict-names

Requiere que cada calificador de esquema (-n/--schema) y tabla (-t/--table) coincida al menos con un esquema/tabla en el archivo a restaurar.

--transaction-size=N

Ejecuta la restauración como una serie de transacciones, procesando cada una hasta N objetos de la base de datos. Esta opción implica --exit-on-error.

--transaction-size ofrece una opción intermedia entre el comportamiento predeterminado (una transacción por comando SQL) y -1/--single-transaction (una transacción para todos los objetos restaurados). Mientras que --single-transaction tiene la menor sobrecarga, puede ser poco práctico para bases de datos grandes porque la transacción tomará un bloqueo en cada objeto restaurado, posiblemente agotando el espacio de la tabla de bloqueos del servidor. Usar --transaction-size con un tamaño de unos pocos miles de objetos ofrece casi los mismos beneficios de rendimiento mientras que limita la cantidad de espacio necesario en la tabla de bloqueos.

--use-set-session-authorization

Genera comandos estándar de SQL SET SESSION AUTHORIZATION en lugar de comandos ALTER OWNER para determinar la propiedad del objeto. Esto hace que la exportación sea más compatible con los estándares, pero dependiendo de la historia de los objetos en la exportación, podría no restaurarse correctamente.

-?
--help

Muestra la ayuda sobre los argumentos de línea de comandos de pg_restore y termina.

pg_restore también acepta los siguientes argumentos de línea de comandos para los parámetros de conexión:

-h host
--host=host

Especifica el nombre de host de la máquina en la que se está ejecutando el servidor. Si el valor comienza con una barra diagonal, se utiliza como el directorio para el socket de dominio Unix. El valor predeterminado se toma de la variable de entorno PGHOST, si está establecida; de lo contrario, se intenta una conexión por socket de dominio Unix.

-p port
--port=port

Especifica el puerto TCP o la extensión del archivo de socket de dominio Unix local en el que el servidor está escuchando conexiones. El valor por defecto es el de la variable de entorno PGPORT, si está establecida, o un valor predeterminado en tiempo de compilación.

-U username
--username=username

Nombre de usuario con el que conectarse.

-w
--no-password

Nunca solicita una contraseña. Si el servidor requiere autenticación por contraseña y no hay una contraseña disponible por otros medios, como un archivo .pgpass, el intento de conexión fallará. Esta opción puede ser útil en tareas por lotes (batch) y scripts donde no hay ningún usuario presente para introducir una contraseña.

-W
--password

Fuerza a pg_restore a solicitar una contraseña antes de conectarse a una base de datos.

Esta opción nunca es imprescindible, ya que pg_restore solicitará automáticamente una contraseña si el servidor exige autenticación por contraseña. Sin embargo, pg_restore desperdiciará un intento de conexión para descubrir que el servidor requiere una contraseña. En algunos casos, vale la pena escribir -W para evitar el intento de conexión adicional.

--role=rolename

Especifica un nombre de rol a utilizar para realizar la restauración. Esta opción hace que pg_restore emita un comando SET ROLE rolename después de conectarse a la base de datos. Es útil cuando el usuario autenticado (especificado por -U) carece de los privilegios necesarios para pg_restore, pero puede cambiar a un rol con los derechos requeridos. Algunas instalaciones tienen una política en contra de iniciar sesión directamente como superusuario, y el uso de esta opción permite realizar restauraciones sin violar dicha política.

Entorno

PGHOST
PGOPTIONS
PGPORT
PGUSER

Parámetros de conexión predeterminados

PG_COLOR

Especifica si se debe usar color en los mensajes de diagnóstico. Los valores posibles son always, auto y never.

Esta utilidad, al igual que la mayoría de las otras utilidades de PostgreSQL, también utiliza las variables de entorno admitidas por libpq (véase Section 32.15). Sin embargo, no lee la variable PGDATABASE cuando no se proporciona un nombre de base de datos.

Diagnóstico

Cuando se especifica una conexión directa a la base de datos mediante la opción -d, pg_restore ejecuta internamente sentencias SQL. Si tienes problemas para ejecutar pg_restore, asegúrate de que puedes seleccionar información de la base de datos utilizando, por ejemplo, psql. Además, se aplicará cualquier configuración de conexión predeterminada y variable de entorno utilizada por la biblioteca front-end libpq.

Notas

Si tu instalación tiene adiciones locales a la base de datos template1, ten cuidado de cargar la salida de pg_restore en una base de datos verdaderamente vacía; de lo contrario, es probable que obtengas errores debido a definiciones duplicadas de los objetos agregados. Para crear una base de datos vacía sin adiciones locales, realiza la copia desde template0, no desde template1, por ejemplo:

CREATE DATABASE foo WITH TEMPLATE template0;

Las limitaciones de pg_restore se detallan a continuación.

  • Al restaurar datos en una tabla preexistente y utilizar la opción --disable-triggers, pg_restore emite comandos para desactivar los disparadores en las tablas de usuario antes de insertar los datos, y luego emite comandos para volver a activarlos después de que se hayan insertado los datos. Si la restauración se detiene en el medio, los catálogos del sistema podrían quedar en un estado incorrecto.

  • pg_restore no puede restaurar objetos grandes de forma selectiva; por ejemplo, solo aquellos para una tabla específica. Si un archivo contiene objetos grandes, se restaurarán todos los objetos grandes, o ninguno de ellos si se excluyen mediante -L, -t u otras opciones.

Consulte también la documentación de pg_dump para obtener detalles sobre las limitaciones de pg_dump.

Por defecto, pg_restore restaurará las estadísticas del optimizador si se incluyen en el archivo de copia de seguridad. Si no se restauraron todas las estadísticas, puede ser útil ejecutar ANALYZE en cada tabla restaurada para que el optimizador tenga estadísticas útiles; consulta Section 24.1.3 y Section 24.1.6 para obtener más información.

Ejemplos

Supongamos que hemos exportado una base de datos llamada mydb en un archivo de copia de seguridad de formato personalizado:

$ pg_dump -Fc mydb > db.dump

Para eliminar la base de datos y volver a crearla a partir de la copia de seguridad:

$ dropdb mydb
$ pg_restore -C -d postgres db.dump

La base de datos nombrada en la opción -d puede ser cualquier base de datos existente en el clúster; pg_restore solo la utiliza para emitir el comando CREATE DATABASE para mydb. Con -C, los datos siempre se restauran en la base de datos con el nombre que aparece en el archivo de copia de seguridad.

Para restaurar la copia de seguridad en una nueva base de datos llamada newdb:

$ createdb -T template0 newdb
$ pg_restore -d newdb db.dump

Observa que no utilizamos -C y, en su lugar, nos conectamos directamente a la base de datos en la que se va a restaurar. Ten en cuenta también que clonamos la nueva base de datos desde template0, no desde template1, para asegurarnos de que esté inicialmente vacía.

Para reordenar los elementos de la base de datos, primero es necesario exportar la tabla de contenidos (TOC) del archivo:

$ pg_restore -l db.dump > db.list

El archivo de listado consta de una cabecera y una línea para cada elemento, por ejemplo:

;
; Archive created at Mon Sep 14 13:55:39 2009
;     dbname: DBDEMOS
;     TOC Entries: 81
;     Compression: 9
;     Dump Version: 1.10-0
;     Format: CUSTOM
;     Integer: 4 bytes
;     Offset: 8 bytes
;     Dumped from database version: 8.3.5
;     Dumped by pg_dump version: 8.3.8
;
;
; Selected TOC Entries:
;
3; 2615 2200 SCHEMA - public pasha
1861; 0 0 COMMENT - SCHEMA public pasha
1862; 0 0 ACL - public pasha
317; 1247 17715 TYPE public composite pasha
319; 1247 25899 DOMAIN public domain0 pasha

Los puntos y comas inician un comentario, y los números al principio de las líneas se refieren al ID de archivo interno asignado a cada elemento.

Las líneas del archivo se pueden comentar, eliminar y reordenar. Por ejemplo:

10; 145433 TABLE map_resolutions postgres
;2; 145344 TABLE species postgres
;4; 145359 TABLE nt_header postgres
6; 145402 TABLE species_records postgres
;8; 145416 TABLE ss_old postgres

podría utilizarse como entrada para pg_restore y solo restauraría los elementos 10 y 6, en ese orden:

$ pg_restore -L db.list db.dump

Véase también

pg_dump, pg_dumpall, psql