PostgreSQL pg_dump
PostgreSQL `pg_dump` es una utilidad para hacer copias de seguridad de una base de datos PostgreSQL. Genera un archivo de texto con comandos SQL que pueden recrear la base de datos y sus objetos, por lo que es esencial para la copia de seguridad y la migración de datos.
Utilización
La utilidad `pg_dump` se utiliza para crear una copia de seguridad de una base de datos PostgreSQL. Suele emplearse cuando necesitas migrar datos, realizar copias de seguridad rutinarias o mover datos entre entornos.
shell
pg_dump [options] dbname > outfile
En esta sintaxis, a `pg_dump` le siguen varias opciones y el `dbname`, que indica de qué base de datos hay que hacer una copia de seguridad, y la salida se redirige a `outfile`. Las opciones habituales incluyen `-U` para especificar el usuario y `-h` para especificar el host, lo que ofrece flexibilidad para hacer copias de seguridad de bases de datos en distintos entornos.
Ejemplos
1. Copia de seguridad básica
shell
pg_dump mydatabase > mydatabase.sql
Este comando básico crea una copia de seguridad de `mydatabase` y la almacena en un archivo llamado `mydatabase.sql`.
2. Copia de seguridad con compresión
shell
pg_dump -Fc mydatabase > mydatabase.dump
Este ejemplo utiliza la opción `-Fc` para crear una copia de seguridad con formato personalizado, que está comprimido y es más eficaz para bases de datos grandes. El formato personalizado es flexible para restauraciones parciales, permitiendo la restauración selectiva de objetos de la base de datos.
3. Copia de seguridad con tabla específica
shell
pg_dump -t mytable mydatabase > mytable.sql
Aquí, la opción `-t` especifica que sólo la tabla `mytable` de `mydatabase` debe volcarse en `mytable.sql`.
Restaurar desde una copia de seguridad
Para restaurar una copia de seguridad, puedes utilizar `pg_restore` para archivos con formato personalizado o `psql` para archivos SQL planos.
Restaurar una copia de seguridad SQL simple
shell
psql -U username -d dbname -f mydatabase.sql
Restaurar desde una copia de seguridad de formato personalizado
shell
pg_restore -U username -d dbname mydatabase.dump
Consejos y buenas prácticas
- Copias de seguridad periódicas. Programa operaciones regulares de `pg_dump` para asegurarte de que siempre tienes copias de seguridad actualizadas.
- Utilizar formato personalizado para bases de datos grandes. El formato personalizado (`-Fc`) es más eficaz y ofrece flexibilidad para restauraciones parciales, lo que puede ser crucial para bases de datos grandes en las que puede que necesites restaurar sólo partes concretas.
- Prueba tus copias de seguridad. Restaura periódicamente las copias de seguridad en un entorno de prueba para garantizar la integridad y la exhaustividad de los datos.
- Almacenamiento seguro. Guarda las copias de seguridad en un lugar seguro para protegerlas contra el acceso no autorizado y la pérdida de datos.
- Tamaño de salida del monitor. Vigila el tamaño de tus vertederos para anticiparte a las necesidades de almacenamiento y a posibles problemas.
Solución de problemas comunes
- Problemas de conexión: Asegúrate de que el servidor de la base de datos está funcionando y es accesible. Utiliza `-h` para especificar el host si es necesario.
- Permiso denegado: Comprueba los permisos de usuario y utiliza `-U` para especificar un usuario con los derechos de acceso necesarios.
- Espacio en disco: Controla el espacio disponible en disco para evitar copias de seguridad incompletas por falta de espacio.