¿Respaldemos la base de datos?

PostgreSQL

Mi nombre es Oscar, y dentro de una hora nos van a borrar/formatear las cuentas que usamos para trabajar en mi Universidad. Y si bien respaldé mis archivos mediante FTP, todavía me queda información y trabajo almacenado dentro de las bases de datos que están en los servidores. Lo mismo podría ser útil si uno se va a cambiar de empresa de hosting (si es que hubiera alguna que ofrezca PostgreSQL en sus planes más económicos). Éste es un tutorial for dummies™.

Conectando al servidor ACInfo (acinfo.unap.cl:5432)

PgAdmin III

Con las últimas versiones del software PgAdmin III, respaldar una base de datos es muy sencillo. Si nuestra base de datos no es muy complicada en cuanto a usuarios, grupos y esquemas; o su volumen no es demasiado grande (por ejemplo, 6 millones de datos).

El respaldado

Para respaldar con el programa, como primer paso lo único que hay que hacer es hacer click con el botón derecho sobre algún objeto de tu dominio y elegir la opción Resguardo… del menú contextual.

También accesible desde el menú “Herramientas” > “Resguardo...”

Luego aparecerá una cuadro de diálogo con distintas opciones dependiendo de dónde vas a hacer la restauración.

Si no tienes permiso de super usuario en el servidor destino (donde vas a hacer la restauración), debes elegir la opción PLAIN:

Imagen del cuadro de diálogo “Resguardar”
En el caso del tipo PLAIN, lo recomendable es que el archivo termine con la extensión .sql
En Windows, es necesario escribir la ruta completa del nombre de archivo a mano (C:...)

Este tipo de respaldos no permite blobs; para eso, se utilizan los otros formatos y se hace mediante líneas de comandos.

Si tienes permiso de super usuario en el servidor destino lo recomendado es utilizar cualquiera de las opciones COMPRESS o TAR por igual.

Imagen del cuadro de diálogo Resguardar
En el caso del tipo COMPRESS o TAR, lo recomendable es que el archivo termine con la extensión .backup

Luego de eso, es cosa de esperar. Según el sistema operativo, puede o no quedarse el computador paralizado hasta que termine. Ten paciencia o cambia de pantalla con las teclas control + tab (o command + tab en los especiales teclados mac).

Por mientras te cuento que si tienes los puertos bloqueados y no puedes conectarte con pgAdmin III, también existe un sistema para manejar la base de datos desde la web (como phpmyadmin de MySQL) llamado phpPgAdmin, que permiten exportar los datos además de los formatos SQL y pg_dump, en los formatos método COPY (binario) , XML, XHTML, CSV o datos separados por tabs y saltos de líneas. Opciones también disponibles desde las líneas de comandos.

/Applications/pgAdmin3.app/Contents/SharedSupport/pg_dump -i -h acinfo.unap.cl -p 5432 -U ooscarr -F p -O -D -v -f "/Users/ooscarr/Desktop/respaldo.sql" -n 'public' ooscarr

El proceso retornó el código de salida 0.

Para una mejor descripción de cada una de las opciones de exportación con el comando pg_dump (en inglés), visita la documentación oficial de PostgreSQL

La restauración

Hay dos formas de hacer la restauración con el programa pgAdmin III, y dependerá del formato del archivo de respaldo o los permisos de usuario que tengas en el servidor donde deseas recuperar la información.

Con el archivo .sql

SQL

Si no tienes permiso de super usuario e hiciste el respaldo en modo PLAIN, lo único que hay que hacer es ir al editor SQL (Herramientas > Herramienta para Consultas), abrir el archivo desde ahí y presionar el botón Play (Consulta > Ejecutar). Hecho.

Con el archivo .backup

Si tenemos un archivo .backup, necesitaremos los permisos necesarios en la base de datos para seleccionarla con el botón derecho y elegir la opción Restaurar…

También accesible desde el menú “Herramientas” > “Restaurar...”

Cuadro de opciones de restauración

Y con eso estaría respaldado y restaurado todo. 🙂 Por supuesto que podrían haber riesgos y complicaciones y habría que entrar a picar por el SSH, pero para qué nos vamos a poner tan negativos. Yo asumo que las bases de datos destino estaban vacías y la configuración de las tablas no era tan especial.

Fin

Ya tengo mis archivos respaldados, mi base de datos está respaldada… Existen otros métodos para replicar los datos sin necesidad de crear un archivo sino que directamente y otras formas de respaldo automático (Slony-I). Ahora me iré a ver cómo respaldar mi base de datos MySQL, nos vemos.

Referencias

3 thoughts on “¿Respaldemos la base de datos?

  1. Hola!

    Estos articulos son espectaculares!!
    Felicitaciones!! muy buenos!!
    Seria genial uno así sobre como funciona la replicación con Slony y Pgadmin.

    Muchas gracias!
    un saludo!!!

Deja un comentario