pg_restore — restaura una base de datos de PostgreSQL a partir de un archivo comprimido o de archivo (archive) creado por pg_dump
pg_restore [connection-option...] [option...] [filename]
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.
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.
pg_restore acepta los siguientes argumentos de línea de comandos.
filenameEspecifica 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-onlyRestaura 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-errorTermina 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=formatEspecifica 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:
ccustomEl archivo está en el formato personalizado de pg_dump.
ddirectoryEl archivo es un archivo de directorio (directory archive).
ttar
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-reconnectEsta opción está obsoleta pero aún se acepta por compatibilidad hacia atrás.
-s--schema-onlyRestaura ú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.
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.
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.
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--verboseActiva 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--versionMuestra la versión de pg_restore y termina.
-x--no-privileges--no-aclEvita 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-triggersEsta 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-securityEsta 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-commentsNo genera comandos para restaurar comentarios, incluso si el archivo los contiene.
--no-dataNo genera comandos para restaurar datos, incluso si el archivo los contiene.
--no-data-for-failed-tablesPor 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-policiesNo genera comandos para restaurar políticas de seguridad a nivel de fila, incluso si el archivo las contiene.
--no-publicationsNo genera comandos para restaurar publicaciones, incluso si el archivo los contiene.
--no-schemaNo genera comandos para restaurar el esquema (definiciones de datos), incluso si el archivo los contiene.
--no-security-labelsNo genera comandos para restaurar etiquetas de seguridad, incluso si el archivo las contiene.
--no-statisticsNo genera comandos para restaurar estadísticas, incluso si el archivo las contiene.
--no-subscriptionsNo genera comandos para restaurar suscripciones, incluso si el archivo las contiene.
--no-table-access-methodNo 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-tablespacesNo 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.
--statisticsGenera comandos para restaurar estadísticas, si el archivo las contiene. Este es el comportamiento por defecto.
--statistics-onlyRestaura ú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.
-?--helpMuestra 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=usernameNombre 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--passwordFuerza 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.
PGHOSTPGOPTIONSPGPORTPGUSERPará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.
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.
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.
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