Mi Blog
Cómo crear y restaurar backups en PostgreSQL

Cómo crear y restaurar backups en PostgreSQL

(4 votos)

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...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿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!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!