24 enero 2019

Programación: Hacer el backup y restaurar una tabla en PostgreSQL

Hicieron esta consulta en un foro hace unos días y ahora les comparto esta solución:

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



No hay comentarios:

.NET: Ejemplo de como usar Dynamic con C#

Hola a todos, le dejo un ejemplo simple de como manejar la clase Dynamic que nos provee el paquete System.Dynamic del .Net Framework. Pa...