Postgresql nos pide vacuum

Cuando en plesk, a la hora de modificar un usuario, crear una bd o realizar cualquier tarea con postgre, nos dice algo asi:

FATAL: 54000: la base de datos no está aceptando comandos para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base <>
HINT: Pare el proceso postmaster y utilice una conexión aislada para limpiar (vacuum) la base <>
LOCATION: GetNewTransactionId, varsup.c:72

es que, ademas de ser unos vagos (ese mantenimiento habitual...!) tenemos un problema. Toca parar el servicio de postgre y ejecutar vacuum con una conexion stand-alone. Para ello, empezamos parando el postgre:

# /etc/init.d/postgresql stop

Una vez parado, nos ponemos con el usuario postgres

# su - postgres

Y, una vez ahi, abrimos la "conexion aislada" que nos decia plesk:

# postgres postgres

En este caso, la hemos abierto para la bd "postgres". Si se quejase de la bd "manolo", pues seria asi:

# postgres manolo

Cuando estemos en el backend, tendremos que ejecutar vacuum, yo lo hago asi:

backend> VACUUM FULL

y a esperar.. que puede ser un buen rato. Una vez hecho esto, lanzamos de nuevo postgre.. en alguna ocasion es posible que lo tengais que hacer a todas las bases de datos o, incluso, que mientras se hace, os diga que otras bbdd lo necesitan. Pues ya sabeis, abris el postgres para esas y lo ejecutais tambien.

pd: si habeis llegado a este punto, os vendria bien tener un backup a mano



728x90 dominios