Re:VACUUM: Nonremovable rows due to wal sender process

Sergei Kornilov <sk@zsrv.org>

From: Sergei Kornilov <sk@zsrv.org>
To: Steve Nixon <inverasln@gmail.com>
Cc: pgsql-performance@postgresql.org
Date: 2022-01-04T20:17:52Z
Lists: pgsql-performance
Hello
This is exactly the reason why you need to track the age of the oldest transaction on the primary itself and on every replica that has hot_standby_feedback = on. By default hot_standby_feedback is disabled.

> Is there anything I can do short of shutting down and restarting the primary (production system) that would allow the backend_xmin to move forward?

You need to investigate this replica. Not a primary database. What transactions are in progress? Is it reasonable? Is hot_standby_feedback really needed here and is it reasonable to pay for its impact across the entire cluster?
In my practice, hot_standby_feedback = on is only needed on replicas intended for fast OLTP queries. And where any long requests are prohibited. 

regards, Sergei