Este ejemplo se realizó sobre un servidor PostgreSQL 9.6.8. corriendo sobre Windows.
Paso 1: Acceder por consola los utilitarios que provee el servidor.
La ruta usual (si instalaron en la ruta sugerida por el Wizard) de los utilitarios es:
C:\Program Files\PostgreSQL\9.6\bin\
La carpeta 9.6 cambiará obviamente si es que tienen otra versión.
En mi caso lo tengo en la unidad D:
Paso 2: Ejecutar el comando para realizar el backup de una tabla específica.
El comando es pg_dump
Este comando tiene múltiples parámetros, pueden obtener más información en:
https://www.postgresql.org/docs/9.6/app-pgdump.html
Para cuestiones de lo que queremos hacer la sentencia es:
D:\Program Files\PostgreSQL\9.6\bin>pg_dump --file "E:\\Data\\NombreDeArchivoBackup" --host "nombredeservidor" --port "5432" --username "usuariobd" --verbose --format=c --blobs --table "public.\"NombreDeMiTablaOrigen\"" "NombreDeMiBaseDeDatosOrigen"
Detalles:
E:\\Data\\: Nombre de la carpeta donde se generará el archivo backup.
nombredeservidor: Nombre o IP del servidor que contiene la tabla que desean hacer el backup.
public.\"NombreDeMiTablaOrigen\" : Nombre del esquema seguido de la tabla. Noten que coloco el nombre de la tabla entre "". Esto debido a que el servidor reconoce las mayúsculas y minúsculas.
Paso 3: Ingresar la contraseña del usuario utilizado para el backup.
Luego de ejecutar el comando, le pediré que ingresen el password del usuario indicado en la sentencia.
Paso 4: Esperar a que termine la ejecución y verán que se genera el archivo de backup con el nombre indicado y en la carpeta indicada en la sentencia.
Paso 5: Restaurar el archivo backup
Para restaurar usaremos la utilidad pg_restore.
La sentencia es:
D:\Program Files\PostgreSQL\9.6\bin>pg_restore --host "nombredeservidor" --port "5432" --username "usuariobd" --dbname "NombreDeMiBaseDeDatosDestino" --data-only --verbose --schema "public" --table "NombreDeMiTablaDestino" "E:\\Data\NombreDeArchivoBackup"
Detalles:
La tabla origen "NombreDeMiTablaOrigen" y la tabla destino "NombreDeMiTablaDestino" deben tener la misma estructura (obvio).
Paso 6: Verifica la correcta restauración.
No está de más hacer:
select count(*) from "NombreDeMiTablaOrigen"
y
select count(*) from "NombreDeMiTablaDestino"
para verificar la misma cantidad de registros.
Espero les sirva.
Saludos