Tutoriales

Cómo restaurar un backup o copia de seguridad realizada con pg_dump de PostgreSQL

Antes de usar los ejemplos

pg_restore utiliza archivos de pg_dump en formatos distintos del SQL de texto plano, como el formato personalizado de nuestra guía de exportación. Una restauración puede ejecutar código procedente de la base original: usá una fuente confiable y un destino aislado.

Revisión técnica del : se corrigieron ejemplos y se añadieron aclaraciones documentadas; no se ejecutaron comandos sobre bases de datos para esta revisión.

Antes de restaurar, revisá estas cuatro condiciones:

1. Revisar la compatibilidad entre servidor de origen, herramienta de exportación y servidor de destino.
No asumas que cualquier combinación de versiones funciona; una restauración hacia una versión anterior no está garantizada.

2. Leer el log del respaldo y confirmar su procedencia. Un log sin errores visibles no demuestra por sí solo que el archivo sea seguro o recuperable.

3. Planificar los archivos WAL y la recuperación

Una restauración puede generar mucho WAL. No desactives el archivado como requisito general: revisá espacio y recuperación con el administrador. La documentación de PostgreSQL sobre cargas masivas advierte que cambiar ciertas opciones de WAL puede invalidar respaldos anteriores para recuperación por archivos y réplicas.

4. Contar con suficiente espacio en el disco

Reservá espacio para datos, índices, archivos temporales y logs. Confirmá el destino y protegé los datos existentes antes de cargar el archivo.

Después de esas comprobaciones, prepará la prueba en una base separada; no uses producción para ensayar.


Parámetros necesarios para restaurar o importar con la herramienta pg_restore


Localizar el proceso pg_restore.exe
Localizá una versión compatible de pg_restore. Las siguientes rutas de PostgreSQL 13 pertenecen al ejemplo histórico y no son una recomendación de instalar esa versión:
C:\Program Files\PostgreSQL\13\bin en Windows de 64 bits
C:\Program Files (x86)\PostgreSQL\13\bin en Windows de 32 bits

--host=
Hostname o IP de la máquina que contiene la base de datos.

--username=
Usuario de la base de datos que hará la importación

--port=
Número de puerto que usa la base de datos

--verbose
Mostrará en la pantalla algunos detalles de la importación, es útil para saber qué está haciendo el proceso y por dónde va.

--dbname=
Nombre de la base de datos de destino, no de un esquema.
--exit-on-error: detiene el proceso ante un error SQL, pero no revierte por sí solo los cambios anteriores.

Nombre del archivo o copia de seguridad que vamos a restaurar.

Log o registro
Definir la ubicación y nombre del archivo que guardará todos los registros (log) del proceso de importación.
Este paso es sumamente importante porque nos permite saber si el proceso termino bien o con errores.

Veamos el siguiente ejemplo


Imaginémonos que tenemos un sistema con las siguientes características
Sistema operativo: Windows Server 2022 de 64 bits
IP: 10.0.0.2
Puerto: 5433
Usuario de la base de datos: pgcarlos
Base de destino del ejemplo original: DB2 (no un esquema; para ensayar usaremos una base vacía separada)
Ubicación del respaldo: D:\Respaldo
Nombre del archivo a restaurar: Backup.bak
Log del proceso de respaldo: Backup.log

Leé primero Backup.log. Reemplazá TEST_DATABASE por una base existente, vacía y reservada para la prueba; ajustá YOUR_VERSION, conexión y rutas. Confirmá los permisos necesarios con el administrador. El archivo de log de destino debe ser nuevo para no sobrescribir uno que necesites.

"C:\Program Files\PostgreSQL\YOUR_VERSION\bin\pg_restore.exe" --host=10.0.0.2 --username=pgcarlos --port=5433 --verbose --exit-on-error --dbname=TEST_DATABASE "D:\Respaldo\Backup.bak" > "D:\Respaldo\Restauracion.log" 2>&1


El comando adaptado puede crear objetos y cargar datos en la base indicada. Si PostgreSQL solicita una contraseña, ingresala solo en el aviso esperado; no la incluyas en el comando.

El comando escribe Restauracion.log, sin tilde. Revisá el código de salida y todo el log, incluidos WARNING, ERROR y FATAL. Después comprobá objetos y datos recuperados en el entorno de pruebas.

Referencia: manual oficial de pg_restore. La plantilla no es una restauración ejecutada ni validada contra tu base de datos.

Ver todos los tutoriales de bases de datos.

Responsable editorial: Todo sobre informática.

Comentarios (0)

Todavía no hay comentarios publicados. Podés ser la primera persona en participar.

Agregar un comentario público

Tu correo es opcional y no será publicado. Los comentarios se revisan antes de aparecer.

Solo lo usaremos para avisarte si respondemos.