Está buscando un registro de punto de control en el registro de transacciones que probablemente no exista o esté dañado. Se puede determinar si este es el caso ejecutando:
pg_resetxlog DATADIR
Si el registro de transacciones está dañado, verá un mensaje como:
El servidor de base de datos no se cerró correctamente. Restablecer el registro de transacciones puede causar la pérdida de datos. Si desea continuar de todos modos, use -f para forzar el restablecimiento.
continuación, puede seguir las instrucciones y correr con -f
para forzar la actualización:
pg_resetxlog -f DATADIR
Eso se debe restablecer el registro de transacciones, sin embargo, podría salir de su base de datos en un estado indeterminado como se explica en el PostgreSQL documentation on pg_resetxlog
:
Si pg_resetxlog se queja de que no puede determinar datos válidos para pg_control, puede obligarlo a continuar de todos modos, especificando el -f
(fuerza) s bruja. En este caso, los valores plausibles serán sustituidos por los datos faltantes. Se puede esperar que la mayoría de los campos coincidan, pero es posible que se necesite asistencia manual para el próximo OID, la próxima identificación de transacción y la época, la próxima identificación y compensación de multitransacción, y los campos de dirección inicial de WAL. Estos campos se pueden configurar mediante los interruptores que se describen a continuación. Si no puede determinar los valores correctos para todos estos campos, aún se puede usar -f
, pero la base de datos recuperada debe tratarse con más sospechas de lo habitual: es imperativo un volcado inmediato y una recarga. No ejecute ninguna operación de modificación de datos en la base de datos antes de volcar, ya que cualquier acción de este tipo empeora la corrupción.
No publique la solución en la pregunta en sí. No se desalienta a responder sus propias preguntas, pero debe publicar soluciones como respuestas. He editado la solución esta vez. Siéntase libre de publicarlo como una respuesta a su conveniencia. –
Tengo curiosidad por saber cuál fue la respuesta antes de que Anna lo haya editado :-) – filiprem
Si está en un servidor esclavo/de lectura y ha iniciado después de copiar sobre la base de respaldo, asegúrese de tener el archivo de etiqueta que se creó al crear la copia de seguridad base en la carpeta de datos local. –