Thread: template0 is having high age of datforzenxid

template0 is having high age of datforzenxid

From
AI Rumman
Date:
Hi,

I am running Postgresql 10 where I can see the template0 database is having longest datfrozenxid:
```db_name  age_of_datfrozenxid
--------------------------------------
postgres    251365
template1    234574
template0    75366462
db1    253097
db2    250649
db3    250649
db4    14641
db5    14214```

Initially I had high age for all the databases and I ran "vacuum freeze" which brought down the age of other databases. But how can I do the same for template0?
Please advise.

Thanks.

Re: template0 is having high age of datforzenxid

From
Andres Freund
Date:
Hi,

On 2019-04-02 15:35:53 -0700, AI Rumman wrote:
> I am running Postgresql 10 where I can see the template0 database is having
> longest datfrozenxid:
> ```db_name  age_of_datfrozenxid
> --------------------------------------
> postgres    251365
> template1    234574
> template0    75366462
> db1    253097
> db2    250649
> db3    250649
> db4    14641
> db5    14214```
> 
> Initially I had high age for all the databases and I ran "vacuum freeze"
> which brought down the age of other databases. But how can I do the same
> for template0?

75 million isn't that high - autovacuum will automatically look at it
once above autovacuum_max_freeze_age (defaulting to 200 million).  If
you really for some reason need to make it have a lower datfrozenxid
(why?), you'd need to update its pg_database entry to allow connections,
connect to it, vacuum it, and change datallowconn back.

Greetings,

Andres Freund