The Replica Followed Along

A migration script runs against production and deletes 2 million rows from the orders table by mistake. Your Postgres primary has two synchronous read replicas in other availability zones. Why do the replicas not help you recover the rows?

A

Replicas store only indexes and query plans rather than the full heap, so they never held the deleted rows in the first place

B

Replication ships the DELETE to every replica within milliseconds, so all copies are equally wrong and only a backup helps

C

Replicas are read-only, so the rows are still present on them but cannot be copied back without promoting one of them to primary first

D

Synchronous replicas keep only the most recent WAL segments, so the deleted rows aged out of their storage before the script ran