Start here. This is the direct spoken answer to practice first.
Why this question matters
Replay is one of the main benefits of event streams, but it can damage production systems if treated like a normal live consumer.
I would create a separate replay or backfill process that reads historical events and writes to the new projection or repaired table. The projection updates need to be idempotent because replay may restart. I would keep replay isolated from live consumers where possible, and I would define whether the rebuilt data includes all history or a bounded time range.