(This is a partial answer.) (My terminology uses the newly-preferred, politically correct, terms Primary and Replica.)
- Stop writing to the Primary-1
- Wait for replication to get through to the Replicas. (This is likely to be finished "immediately".)
- Make Replica-2 the Primary-2 by allowing writes.
- Change clients to write to P2. (And, optionally, stop reading from P2.)
Now you have:
P2->R3 -- no action is needed to make that part of the replication work.
If you are going to make R4, it gets trickier. It is probably best to clone R3 to make R4. More...
To change one Replica to replicate from some other Replica (for example, one that was recently promoted to Primary), all the relevant servers needed to be caught up and not receiving traffic and replication turned off (
SLAVE STOP). (This is possibly overkill.)
The next step depends on whether you have GTID enabled. If you do, it should be possible to use that to tell the slave where to pick up (and some of the steps above are overkill).
Without GTID, have the moved Replica (R4 in your example) needs a
CHANGE MASTER to point to its new Primary at the correct spot. That, because of the
STOPs will be conveniently at the start of some binlog. (I haven't done this in 15 years, so I am hazy on the details.)