2012-01-10 28 views
28

Cuando cargo el servidor postgres (v9.0.1) me sale un pánico que impide el arranque:PÁNICO error de PostgreSQL: no se pudo localizar un registro punto de control válido

PÁNICO: No se pudo localizar un punto de control válido registro

¿Cómo puedo solucionar esto?

+0

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. –

+0

Tengo curiosidad por saber cuál fue la respuesta antes de que Anna lo haya editado :-) – filiprem

+0

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. –

Respuesta

55

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.

2

¿Hace archiving continuo? Si está realizando una copia de seguridad en ese momento, puede ser más prudente eliminar la etiqueta de copia de seguridad. pg_resetxlog es algo grave.

1

al igual que el logaritmos que dice: no se pudo encontrar un registro de punto de control válido. Postgres no puede encontrar un WAL correctamente en el directorio $ PGDATA/pg_xlog /. intenta utilizar pg_resetxlog

10

estoy corriendo 9.1.7 y me encontré con el siguiente encuentro con éxito:

/usr/lib/postgresql/9.1/bin/pg_resetxlog -f /var/lib/postgresql/9.1/main 

Su último argumento al comando pg_resetxlog debe ser el lugar en disco en postgres guarda los datos de la base de datos .

6

Como indicated here no debe ejecutarse pg_resetxlog. Las respuestas que se refieren a esto son malos consejos.Suponiendo que se produjo el error en un contexto de copia/instancia de replicación, el enlace proporciona una forma más concisa de copiar/replicar con pg_basebackup

Cuestiones relacionadas