Hi

yesterday, I had to fix strange issue on standby server

The query to freshly updated data fails

select * from seller_success_rate where create_time::date = '2024-04-23';
ERROR:  58P01: could not access status of transaction 1393466389
DETAIL:  Could not open file "pg_xact/0530": No such file or directory.
LOCATION:  SlruReportIOError, slru.c:947

amcheck

select * from verify_heapam('seller_success_rate');
 blkno | offnum | attnum |                                msg

-------+--------+--------+-------------------------------------------------------------------
  5763 |    111 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5863 |    109 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5863 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5868 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5868 |    111 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5875 |    111 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5895 |    109 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  5895 |    110 |        | xmin 1439564642 precedes oldest valid
transaction ID 3:1523885078
  6245 |    108 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6245 |    109 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6245 |    110 |        | xmin 1439564642 precedes oldest valid
transaction ID 3:1523885078
  6245 |    112 |        | xmin 1424677216 precedes oldest valid
transaction ID 3:1523885078
  6378 |    109 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6378 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6382 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6590 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  6590 |    111 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  7578 |    112 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  7581 |    112 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
  8390 |    112 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
 10598 |    109 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078
 10598 |    110 |        | xmin 1393466389 precedes oldest valid
transaction ID 3:1523885078

I verified xmin against the primary server, and it was the same. There was
not any replication gap.

I checked the fields from pg_database table, and looks same too

These rows were valid (and visible) on primary.

On this server there was not any long session (when I was connected),
unfortunately I cannot test restart of this server.  One wal sender is
executing on standby. Fortunately, there was a possibility to run VACUUM
FULL, and it fixed the issue.

The customer has archived wals.

My question - is it possible to do some diagnostics from SQL level? I
didn't find a way to get values that are used for comparison by amcheck
from SQL.

Regards

Pavel

Reply via email to