> On 16/02/2019, at 4:07 AM, Carlos T. Groero Carmona <cton...@gmail.com> wrote:
> 
> Gracias a todos por sus comentarios y ayudarme a pasar a traves de esta 
> situacion tan rara y peligrosa...
> 
> @Horacio Miranda <mailto:hmira...@gmail.com>, voy a empezar a trabajar en 
> esto lo mas rapido posible, mi template0 esta el 78%..
> Solo una pregunta, haciendo vacuum FULL freze a template0 or template1 or 
> postgres hay alguna posibilidad que mi base de datos en producion tenga 
> alguna consecuencia?, pregunto esto porque estariamos bloqueando todas las 
> tablas en esas base de datos.

Sin tener un ambiente/problema similar y sin probarlo no te puedo decir que no 
la va a tener, vas a tener que probar en tu ambiente de pruebas y cruzar los 
dedos para que producción se comporte de forma similar.

Solo atento a los bloqueos y dado el tamaño de la base o nivel de transacciones 
es mejor hacer esto en un periodo de baja carga, toma el tiempo que toma para 
sacar una métrica.

Saludos y suerte, este tema se ve interesante, primera vez que me toca ver algo 
como esto.

> Saludos,
> Carlos
>  
> 
> On Fri, Feb 15, 2019 at 3:19 AM Horacio Miranda <hmira...@gmail.com 
> <mailto:hmira...@gmail.com>> wrote:
> Hola despues de jugar un buen rato, creo que es necesario abrir y cerrar 
> el template0 para poder bajar la marca de los datfrozenxid en bases de 
> datos de alta transaccion.
> 
> mis sistemas que tengo en postgres funcionando desde el 2010 sin 
> problemas algunos no tenian ni siquiera un 1% usado.
> 
> No me ha tocado mirar bases de datos con tanta carga como para tener 
> este problema y me imagino que los desarrolladores tanpoco ven la 
> necesidad que vacuumdb haga el trabajo en el template0, sin embargo creo 
> que es posible agregar esta funcionalidad de have vacuumdb en el 
> template0 sin tener que brirla ( pensando en voz alta ), este el primer 
> caso que veo.
> 
> @Carlos, por favor abre la base template0 ( hace el vacuumdb -F -a 
> template1 ) y luego vuelve a cerrar el template0.
> 
> Desde el template1 puedes hacer esto si quieres
> 
> update pg_database set datallowconn='t' where datname = 'template0';
> 
> \c template0
> 
> vacuum full freeze ;
> 
> update pg_database set datallowconn='f' where datname = 'template0';
> 
> Dejar esto en algun script.
> 
> On 15/02/2019 12:08 PM, Alvaro Herrera wrote:
> > Carlos T. Groero Carmona escribió:
> >> Dejenme aclarar algo porque quizas no me he hecho entender, yo no escribo
> >> en template0 or en template1, yo tengo 9 base de datos en el cluster el 98%
> >> de las transactiones las hago en db_prod y el resto en 3 pequenas base de
> >> datos.
> >>
> >> El problema es que el XID de todas las base de datos crecen por igual, en
> >> las ultimas 24H el XID crecio en 42,039,358, crecio por igual para las 9
> >> base de datos en el cluster, incluyendo, template0, template1 y postgres.
> >> Miren les muestro el analysis que he estado haciendo:
> >> Database 11-Feb 12-Feb 13-Feb 14-Feb 15-Feb 16-Feb 17-Feb
> >> DB_1 194,502,390 234,727,250 282,500,743 324,540,101
> >> DB_2 194,307,274 234,532,134 282,305,627 324,344,985
> > Eh ... ¿de dónde vienen esos números?  Si es un age(datfrozenxid), es
> > natural que crezcan todos por igual, porque la función age(xid) resta el
> > valor del XID actual (que es global para todas las DBs) el valor del
> > datfrozenxid de cada DB.
> >

Reply via email to