Did you see any weird messages when you vacuumed "template0"?
No.
Did "datfrozenxid" shrink after the operation?
"foo_db" seems to be the bigger problem.
Perhaps autovacuum never handled "template0" because it concluded (rightly) that it has to deal with "foo_db" first.
Yes this DB had a table in it that had been autovacuuming since Feb 2. It's age is half way to wraparound so I'm in the middle of a manual VACUUM FREEZE on it. I'd be interested in knowing if that prevents template0 from autovacuuming itself. There are no other autovacuum jobs running.
> I can say that these DB > has previously been altered for locale changes as well.
Would you care to explain that? You changed "template0"? How?
It was changed before my time here to change the encoding from LATIN1 to UTF manually. One of the fun treats I'm working to correct as I also prepare these for upgrade to PG12.
What are your non-default autovacuum settings? Perhaps you should speed up autovacuum by reducing "autovacuum_vacuum_cost_delay" to 2ms or less, and by increasing "maintenance_work_mem".
All autovacuum settings on this DB are default. Cost delay is at the default 20ms. maintenance_work_mem I've already increased to 512MB (this VM has 8GB RAM).