sql >> Base de Datos >  >> RDS >> PostgreSQL

error de postgresql PÁNICO:no se pudo ubicar un registro de punto de control válido

Está buscando un registro de punto de control en el registro de transacciones que probablemente no exista o esté dañado. Puede determinar si este es el caso ejecutando:

# Postgres >= 10
pg_resetwal DATADIR

# Postgres < 10
pg_resetxlog DATADIR

Si el registro de transacciones está dañado, verá un mensaje como:

El servidor de la base de datos no se cerró correctamente. Restablecer el registro de transacciones podría provocar la pérdida de datos. Si desea continuar de todos modos, use -f para forzar el reinicio.

Luego puede seguir las instrucciones y ejecutar con -f para forzar la actualización:

# Postgres >= 10
pg_resetwal -f DATADIR

# Postgres < 10
pg_resetxlog -f DATADIR 

Eso debería restablecer el registro de transacciones, sin embargo, podría dejar su base de datos en un estado indeterminado como se explica en la documentación de PostgreSQL en pg_resetwal :

Si pg_resetwal se queja de que no puede determinar datos válidos para pg_control , puede obligarlo a continuar de todos modos especificando -f (forzar) opción. En este caso, se sustituirán los datos que faltan por valores plausibles. Se puede esperar que la mayoría de los campos coincidan, pero es posible que se necesite asistencia manual para el siguiente OID, el siguiente ID de transacción y época, el siguiente ID de transacción múltiple y desplazamiento, y los campos de ubicación inicial de WAL. Estos campos se pueden configurar usando las opciones que se describen a continuación. Si no puede determinar los valores correctos para todos estos campos, -f todavía se puede utilizar, pero la base de datos recuperada debe tratarse con más sospechas que de costumbre:es imperativo un volcado y una recarga inmediatos. No ejecute ninguna operación de modificación de datos en la base de datos antes de volcarla, ya que es probable que dicha acción empeore la corrupción.