Dom. Ago 7th, 2022

Si utilizas la base de datos PostgreSQL para tus proyectos como programador, y hasta ahora no has pensado en la parte de la copia de seguridad (backup), pues es momento de hacerlo.

En este artículo afrontaremos cómo hacer una backup de PostgreSQL en Windows.

Veremos las dos formas de realizarlo, es decir a través del programa de gestión (en mi caso pgAdmin) de la base de datos y a través de la línea de comandos (cmd).

Backup PostgreSQL a través de pgAdmin

En mi caso estoy utilizando la versión 5.7 de pgAdmin 4 y la versión de PostgreSQL 10.

Una vez que estamos dentro de pgAdmin y que nos hallamos conectado a nuestra instalación de PostgreSQL, seleccionamos la base de datos a la que queremos realizar la copia de seguridad y hacemos clic con el botón derecho del ratón.

Se nos muestra el menú contextual, en donde iremos a seleccionar la opción Backup.

Una vez hecho, aparece una ventana en la que indicaremos la ruta y el nombre del archivo que se va a crear.

Podemos escribir directamente el nombre si conocemos exactamente la ruta. Caso contrario presionamos el botón con los tres puntos horizontales para que el programa nos ayude seleccionando la carpeta destino.

Ahora, presionamos el botón Backup, para que la copia inicie.

Aparece en la parte inferior izquierda una ventana que indica que el trabajo de copia de seguridad se inició.

Si queremos ver lo que está realizando, presionamos el botón More details…, el que hace que se abra una nueva ventana.

Una vez terminado el proceso se muestra a través del mensaje en la parte inferior de la ventana de detalles del proceso.

Ya tenemos nuestro archivo de copia de la base de datos que hemos elegido.

Backup de PostgreSQL a través de la línea de comandos (cmd)

Como mencionamos antes, si estamos utilizando PostgreSQL para nuestros proyectos, es impensable pedir a nuestro cliente que haga todo el proceso antes mencionado.

Lo más lógico y eficiente sería realizar un pequeño script que haga el trabajo de copia.

Luego ese script lo podemos colocar dentro de nuestro sistema o podemos crear una tarea programada en Windows, para que sea el mismo sistema operativo que realice la ejecución del script según nos convenga.

Pero primero, tendremos que realizar las pruebas de test. Abrimos entonces la línea de comandos y escribimos el siguiente comando:

"D:\Program Files\PostgreSQL\10\bin\pg_dump.exe" --host localhost --port 5432 --username "miuser" --password --format custom --blobs --file "d:\miArchivodeCopia" "miBaseDatos"

Si, hay que respetar las comillas y reemplazar la ruta en donde se encuentre el archivo pg_dump en la computadora donde reside la base de datos.

Ejecutando el comando resulta lo siguiente:

El resultado es que con este comando se nos ha pedido la clave de acceso a la instalación de PostgreSQL.

Esto haría que sea necesaria la presencia de un ser humano para ingresar la password. 

Para obviar esto nos valemos del comando –no-password en vez de –password.

Nuestra línea quedaría entonces así:

"D:\Program Files\PostgreSQL\10\bin\pg_dump.exe" --host localhost --port 5432 --username "miuser" --no-password --format custom --blobs --file "d:\miArchivodeCopia" "miBaseDatos"

Pero el hecho de utilizar el comando –no-password no nos exime de tener que indicarla, deberíamos primero realizar una línea indicándola así:

SET PGPASSWORD=miPassword

En donde al lugar de «miPassword» colocamos la password asignada al usuario que realiza la copia. Ahora si, nuestro proceso funciona:

El siguiente paso es crear un archivo .BAT que podemos ejecutar con un simple doble clic o como hemos dicho anteriormente, incluirlo en un proceso del programador de tareas de Windows.

He agregado unas líneas para que no se vea la password en claro al momento de ejecutarse el proceso.

By Enrique Vásquez B.

Programmatore dal 1988, con la passione per la scrittura di articoli di ogni genere. Attualmente sviluppa per ZEVEN S.A. il Sistema di Fatturazione Elettronica. Ecuadoriano di nascita e italiano di residenza, scrive da Genova, città che ha imparato ad amare tanto quanto la sua natale Guayaquil. Padre di due figli che sono il suo orgoglio e marito di una donna eccezionale.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.