Continuidad e infraestructura
Ensaya PostgreSQL hasta recuperar una aplicación utilizable
Un ensayo de recuperación necesita una aplicación que pueda hacer el trabajo acordado con los datos y permisos esperados. Diseña ese resultado antes de restaurar: te permitirá identificar qué cubre la copia, cuánto se tarda y qué dependencia sigue pendiente.
Escribe los objetivos y qué reloj vas a medir
Define tu RPO, la pérdida máxima de datos tolerable expresada en tiempo, y tu RTO, el plazo objetivo para recuperar el servicio. Son objetivos de tu organización, no cifras que este artículo pueda asignar. Después decide cómo comprobarás la última operación recuperada y el momento en que la aplicación vuelve a ser utilizable.
Registra el instante de la copia, su procedencia y el alcance conocido. Conserva referencias de integridad y el inventario de versiones, extensiones y configuraciones necesarias. Si no puedes identificar una dependencia, marca ese punto antes del ensayo en lugar de asumir que el archivo la contiene.
pg_dump trabaja por base y no incluye roles ni tablespaces globales; la guía distingue pg_dumpall para el conjunto del cluster. El texto SQL se restaura con psql; los archivos no textuales, con pg_restore. Comprueba el formato y alcance de la copia disponible. (PostgreSQL Global Development Group)
El destino del ensayo debe estar separado
Utiliza un entorno desechable de confianza, distinto de producción, con acceso autorizado. Aísla las conexiones que podrían enviar correo, cobrar, notificar o ejecutar tareas externas. Revisa también procesos programados y credenciales de la aplicación; recuperar datos no debería activar comunicaciones reales durante la comprobación.
Restaurar puede ejecutar código elegido por superusuarios del origen: revisa la confianza y el material antes. En pg_restore, --single-transaction implica --exit-on-error y es incompatible con trabajos paralelos. No combines opciones por costumbre ni uses una limpieza automática contra producción. (PostgreSQL Global Development Group)
Como inspección ilustrativa de un archivo compatible, el comando siguiente lista su contenido sin indicar una base de destino. No se ha ejecutado aquí y el listado, por sí solo, no demuestra que la aplicación pueda recuperarse.
pg_restore --list copia-ejemplo.dumpPrepara las evidencias que debe producir la restauración
| Área | Qué comprobar | Resultado |
|---|---|---|
| Alcance | Base, esquema y elementos esperados | Pendiente |
| Identidades | Roles, propietarios y permisos necesarios | Pendiente |
| Dependencias | Extensiones y configuración de aplicación | Pendiente |
| Datos | Registros e invariantes de negocio acordados | Pendiente |
| Aplicación | Consulta y operación representativas | Pendiente |
| Tiempo | Último dato recuperado y servicio utilizable | Pendiente |
Elige invariantes que el equipo entienda. Por ejemplo, en una aplicación hipotética, una referencia conocida debe localizarse y sus registros relacionados deben corresponder. Añade una comprobación con el usuario de aplicación previsto, no solo con una cuenta administrativa. Este ejemplo no es un resultado de cliente.
Conserva salida y errores del proceso. Si falta un objeto o una operación no puede ejecutarse, registra la causa y su efecto sobre el objetivo del ensayo. No cierres la recuperación solo porque terminó un comando: compara las evidencias definidas al principio.
Si necesitas volver a un instante concreto, revisa otra estrategia
La documentación de PITR combina una copia física adecuada con una secuencia archivada de WAL. Los dumps lógicos de pg_dump y pg_dumpall no contienen lo necesario para replay de WAL. El ensayo lógico descrito no acredita recuperación a cualquier instante. (PostgreSQL Global Development Group)
Esa diferencia puede cambiar qué se debe conservar y ensayar. Si el objetivo requiere un punto temporal concreto, asigna el diseño y la comprobación de esa estrategia antes de prometerlo. No deduzcas la cobertura a partir de la frecuencia con que aparece un archivo de copia.
Acepta, retén o repite con una causa registrada
Al terminar, compara el último dato recuperado y el tiempo de servicio utilizable con tus objetivos. Revisa los resultados de aplicación, permisos y dependencias con sus responsables. Una comprobación pendiente necesita una decisión explícita: aceptar el límite, corregir y repetir o cambiar la estrategia.
PostgreSQL se distribuye bajo la PostgreSQL License. Eso no incluye por sí solo almacenamiento, servicio gestionado, trabajo de recuperación o permisos sobre los datos. Este artículo no ejecuta una restauración ni estima tiempos o ahorros para tu sistema. (PostgreSQL Global Development Group)
La entrega útil es el registro del ensayo con copia identificada, entorno, pasos, evidencias, diferencias y responsables. Una vez acordado, el equipo puede repetirlo cuando cambien dependencias importantes y convertir la recuperación en una capacidad comprobable.
Fuentes
- PostgreSQL18: SQL Dump — PostgreSQL Global Development Group
- PostgreSQL18: pg_restore — PostgreSQL Global Development Group
- PostgreSQL18: Continuous Archiving and PITR — PostgreSQL Global Development Group
- PostgreSQL License — PostgreSQL Global Development Group