Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ Cómo crear y restaurar backups en PostgreSQL

⋆ Cómo crear y restaurar backups en PostgreSQL

(Tiempo estimado: 4 - 7 minutos)

PostgreSQL es junto a MySQL/MariaDB uno de los Sistemas Gestores de Bases de Datos mas utilizados en el mundo informático. Por ello, saber realizar copias de seguridad de nuestras bases de datos y restaurarlas es algo que debemos saber cuando trabajamos con PostgreSQL.

Seguid leyendo y os enseñaré a crear y restaurar copias de seguridad una base de datos PostgreSQL...

 

 

¿QUÉ ES POSTGRESQL?

PostgreSQL es un sistema gestor de bases de datos relacionales, es multiplataforma (puede ser instalado en Microsoft Windows, GNU/Linux, MacOS, BSD y muchos otros sistemas operativos) y Open Source. PostgreSQL es escalable y puede manejar bases de datos enormes, de más de 100 Terabytes.

Está desarrollado desde 1996 por la comunidad partir del SGBD POSGRES, que surgió a partir de un proyecto de investigación militar estadounidense con participación civil.

PostgreSQL está orientado a objetos, es decir, todos los elementos de las bases de datos van a poder tratarse como objetos, algo parecido a un lenguaje de programación como por ejemplo Java, PHP, C++, etc...

Además, es extensible y se le pueden añadir funcionalidades que no vengan provistas de serie.

URL: https://www.postgresql.org

PostgreSQL Logo

 

 

PostgreSQL es uno de los SGBD más utilizados en la actualidad

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con PostgreSQL
  • Al menos una base de datos con tablas y datos

 

 

2.- REALIZAR UNA COPIA DE SEGURIDAD

Para realizar la copia de una base de datos PostgreSQL, ejecutaremos el siguiente comando siguiendo la sintaxis y es posible que tengamos que ejecutar los comandos desde el usuario postgres:

raul@debian:~$ sudo -u postgres -i
postgres@debian:~$

 

 

Ejecutamos pg_dump para generar la copia de seguridad:

postgres@debian:~$ pg_dump -U [usuario] -W -h [dirección_host] [base_de_datos] > backup_base_de_datos.sql

 

 

Por ejemplo:

postgres@debian:~$ pg_dump -U postgres -W -h localhost world > /tmp/world.sql
Contraseña:

 

 

Ahora comprobamos que el fichero se ha generado correctamente (es un fichero de texto plano):

postgres@debian:~$ ls -l /tmp/world.sql 
-rw-r--r-- 1 postgres postgres 203276 ene 25 11:15 /tmp/world.sql

3.- RESTAURAR UNA COPIA DE SEGURIDAD

Para restaurar una copia de seguridad de PostgreSQL, ejecutaremos el siguiente comando respetando la sintaxis siguiente:

postgres@debian:~$ psql -U [usuario] -W -h [dirección_host] [base_de_datos] < backup_base_de_datos.sql

 

 

Si no existe la base de datos, deberemos crearla previamente. Entraremos en PostgreSQL con el comando siguiente:

postgres@debian:~$ psql
psql (11.9 (Debian 11.9-0+deb10u1))
Digite «help» para obtener ayuda.

 

 

Una vez dentro de PostgreSQL, crearemos la base de datos:

postgres=# CREATE DATAASE world;

 

 

Por ejemplo, para restaurar world.sql en la base de datos world, ejecutaremos lo siguiente:

postgres@debian:~$ psql -U postgres -W -h localhost world < /tmp/world.sql
Contraseña:
BEGIN
SET
CREATE TABLE
CREATE TABLE
CREATE TABLE
COPY 4079
COPY 239
COPY 984
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
COMMIT
ANALYZE
ANALYZE
ANALYZE

 

 

Si queremos comprobar que las tablas y los datos se han restaurado correctamente, entraremos en PostgreSQL con el comando siguiente:

postgres@debian:~$ psql
psql (11.9 (Debian 11.9-0+deb10u1))
Digite «help» para obtener ayuda.

 

 

Una vez dentro de PostgreSQL, listaremos las bases de datos: 

postgres=# \l
Listado de base de datos
Nombre | Dueño | Codificación | Collate | Ctype | Privilegios
-----------+----------+--------------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
template0 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
world | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
(4 filas)

 

 

Ahora conectamos con la base de datos world con "\c world":

postgres=# \c world
Ahora está conectado a la base de datos «world» con el usuario «postgres».

 

 

Si queremos mostrar las tablas ejecutaremos "\dt":

world=# \dt
Listado de relaciones
Esquema | Nombre | Tipo | Dueño
---------+-----------------+-------+----------
public | city | tabla | postgres
public | country | tabla | postgres
public | countrylanguage | tabla | postgres
(3 filas)

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar