Archivo de la etiqueta: PostgreSql

Restaurar un backup plano en PostgreSql

En los posts previos sobre temas referentes a backups en PostgreSql, vimos un caso en el cual, en lugar de realizar el backup generando un dump comprimido, lo hacíamos en formato plano (en particular, el post hablaba sobre hacer un backup de sólo algunas tablas de una base de datos).

Ahora bien, cómo ¿hacemos para volver a introducir esos datos?.

Simplemente basta con ejecutar este comando:

psql -U usuario -d basededatos -h host -f archivoplano.sql

Automáticamente se nos pedirá la contraseña

Password for user usuario:

Una vez ingresada, nuestros datos pasarán a insertarse en PostgreSql.

Backup de tablas específicas en PostgreSql

Ya vimos cómo se hacen los backups, como se los automatiza e incluso, cómo restaurar esos backups en PostgreSql.

Hace unos días tuve un requerimiento por el cual, si bien la base de datos en cuestión ya se backupea, me solicitaban hacer un backup con mayor periodicidad, pero sólo de un conjunto de tablas.

Bien, gracias a la flexibilidad de nuestro motor favorito, esto es muy sencillo.

Repasemos cómo hacíamos para hacer un dump completo de nuestro base de datos.

pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f "/home/damian/backups/mibase.backup" mibase

Para exportar sólo un conjunto de tablas, tenemos que hacer un pequeño cambio.

pg_dump -i -h localhost -p 5432 -U postgres -t tabla -F p -b -v -f "/home/damian/backups/mitabla.sql" mibase

La diferencia entre ambos scripts radica en que agregamos el parámetro -t seguido del nombre de nuestra tabla (en este caso, con poca inspiración, usé tabla).

Lo que vamos a obtener es, solamente,  un backup de la tabla indicada, con su estructura y datos.

Si lo que necesitamos son un conjunto de tablas, tenemos dos formas de hacerlo.  La primera es usando el parámetro -t tantas veces como tablas vayamos a requerir.

pg_dump -i -h localhost -p 5432 -U postgres -t usuarios -t documentos -t logs -F p -b -v -f "/home/damian/backups/mistablas.sql" mibase

La segunda forma, es utilizar patrones (si es que se aplica a nuestro caso).

pg_dump -i -h localhost -p 5432 -U postgres -t productos_* -F p -b -v -f "/home/damian/backups/mistablas.sql" mibase

En ambos casos, se hará un backup de las tablas, vistas y/o secuencias que coincidan con lo indicado.

Sigue leyendo

Restaurar backups de PostgreSql

Vamos a continuar con las operaciones que deben ser habituales para el mantenimiento de nuestras base de datos.

Hasta ahora ya habíamos visto cómo hacer un backup en Postgresql, y también, cómo hacerlo de manera automática.

Vamos ahora a la otra punta del circuito: restaurar una base desde nuestros backups.

El comando que vamos a utilizar (y conocer) es pg_restore.

Si lo aplicara a los ejemplos que antes dí sobre pg_dump, nuestro ejemplo de pg_restore seria el siguiente.

pg_restore -i -h localhost -p 5432 -U postgres -d mibase -v "/home/damian/backups/mibase.backup"

Una vez que lo ejecutemos, se nos pedirá la contraseña del usuario que vamos a usar.

Sigue leyendo

Cómo obtener el tamaño de una base de datos en PostgreSql

De repente tu aplicación empezó a funcionar, y la base de datos empieza a crecer.

Ahora bien, ¿cómo saber cuánto pesa tu base de datos en PostgreSql?. Bastante fácil, con la siguiente consulta.

SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE FROM pg_database;

De ésta forma, conseguimos los tamaños de nuestras bases y vemos algo como lo siguiente.

  datname  |  size
-----------+---------
 template1 | 4336 kB
 template0 | 4248 kB
 postgres  | 4336 kB

Si quisieras obtener el tamaño de alguna base en particular, será cuestión de agregarle la condición y preguntar por el nombre de la base buscada.

Así de rápido termina este pequeño tip.