PostgreSQL es gratuito, de código abierto y uno de los sistemas de administración de bases de datos relacionales más populares, que impulsa millones de aplicaciones. Si es un administrador de base de datos que utiliza PostgreSQL en un entorno de producción, es fundamental realizar una copia de seguridad de su base de datos para que pueda restaurar rápidamente su sistema si se pierde su base de datos.
En este tutorial, le mostraremos cómo realizar una copia de seguridad y restaurar la base de datos de PostgreSQL en Linux.
Requisitos
- Un Ubuntu 20.04 VPS nuevo con PostgreSQL instalado en Atlantic.net Cloud Platform.
- Si aún no tiene instalado PostgreSQL, puede consultar este blog para aprender a instalar y configurar Postgres.
- Una contraseña raíz configurada en su servidor.
1 – Crear servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 20.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 20.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
2 – Comprender la sintaxis básica de pg_dump
PostgreSQL viene con utilidades integradas llamadas pg_dump para crear y restaurar copias de seguridad fácilmente.
La sintaxis básica del comando pg_dump se muestra a continuación:
pg_dump [OPTION]... [DBNAME]
A continuación se muestra una breve explicación de cada opción:
-d, –dbname=NOMBRE DE LA BASE DE DATOS: Se utiliza para especificar la base de datos de la que desea hacer una copia de seguridad.
-h, –host=HOSTNAME : Se utiliza para especificar el nombre de host de su servidor de base de datos.
-U, –username=NOMBRE DE USUARIO : Se utiliza para especificar el nombre de usuario de PostgreSQL.
-w, –no-password: Se usa para ignorar la solicitud de contraseña.
-p, –port=PORT : Se utiliza para especificar el número de puerto del servidor PostgreSQL.
-W, –contraseña: Se usa para forzar la solicitud de contraseña.
–role=ROLENAME : ESTABLECER ROL antes del volcado.
3:copia de seguridad y restauración de una única base de datos
Puede hacer una copia de seguridad y restaurar una sola base de datos utilizando la utilidad pg_dump. La sintaxis básica para hacer una copia de seguridad de una sola base de datos se muestra a continuación:
pg_dump -d [source-database] -f [database_backup.sql]
Por ejemplo, para hacer una copia de seguridad de una sola base de datos llamada testdb y generar un archivo de copia de seguridad llamado testdb_backup.sql, ejecute el siguiente comando:
su - postgres pg_dump -d testdb -f testdb_backup.sql
También puede restaurar una sola base de datos usando el comando psql. La sintaxis básica para restaurar una sola base de datos se muestra a continuación:
psql -d [destination_database] -f [database_backup.sql]
Por ejemplo, para restaurar una sola base de datos llamada testdb desde un archivo de respaldo llamado testdb_backup.sql, ejecute el siguiente comando:
su - postgres psql -d testdb -f testdb_backup.sql
Deberías obtener el siguiente resultado:
SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET
Si desea detener el proceso de restauración de la base de datos en caso de que ocurra un error, ejecute el siguiente comando:
psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql
Nota: Antes de restaurar cualquier base de datos, se recomienda finalizar todas las conexiones a esa base de datos y preparar el archivo de copia de seguridad.
Copia de seguridad y restauración de todas las bases de datos
Puede hacer una copia de seguridad de todas las bases de datos en PostgreSQL usando la utilidad pg_dumpall. La sintaxis básica para respaldar todas las bases de datos como se muestra a continuación:
pg_dumpall -f [alldatabase_backup.sql]
Por ejemplo, para hacer una copia de seguridad de todas las bases de datos en PostgreSQL y generar un archivo de copia de seguridad llamado alldb_backup.sql, ejecute el siguiente comando:
pg_dumpall -f alldb_backup.sql
Para restaurar todas las bases de datos desde un archivo de respaldo llamado alldb_backup.sql, ejecute el siguiente comando:
psql -f alldb_backup.sql
Copia de seguridad y restauración de una sola tabla
PostgreSQL también le permite hacer una copia de seguridad de una sola tabla de la base de datos específica. Puede lograr esto usando la siguiente sintaxis:
pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]
Por ejemplo, para hacer una copia de seguridad de una tabla llamada mytab desde la base de datos llamada testdb y generar un archivo de copia de seguridad llamado testdb_mytab.sql, ejecute el siguiente comando:
pg_dump -d testdb -t mytab -f testdb_mytab_backup.sql
Si desea restaurar esta tabla desde el archivo de copia de seguridad, ejecute el siguiente comando:
psql -d testdb -f testdb_mytab_backup.sql
Copia de seguridad y restauración de base de datos comprimida
También puede hacer una copia de seguridad de la base de datos PostgreSQL y comprimirla en formato .gz para reducir el tamaño de la copia de seguridad.
Para realizar una copia de seguridad de la base de datos denominada testdb y generar un archivo de copia de seguridad comprimido denominado testdb_compressed.sql.gz, ejecute el siguiente comando:
pg_dump -d testdb | gzip > testdb_compressed.sql.gz
También puede restaurar la copia de seguridad desde el archivo comprimido usando el siguiente comando:
gunzip -c testdb_compressed.sql.gz | psql -d testdb
Conclusión
En la guía anterior, aprendió varias formas de respaldar y restaurar una base de datos de PostgreSQL para ayudarlo a realizar las operaciones de respaldo de la base de datos del día a día. ¡Comience hoy con una base de datos PostgreSQL en alojamiento VPS de Atlantic.Net!