>>> This should work: ensure that 'd' and 't' are in sync (have stopped at the
> same
>>> master log pos according to the SHOW SLAVE STATUS output), so that you can
> pick
>>> the correct position to use for CHANGE MASTER TO when switching 't' to 'd'
> (by
>>> executing SHOW MASTER STATUS on 'd'). Then you can switch over 't' to 'd'
> using
>>> these positions, run 'd' again to "empty" 'a' and then you can turn off 'a'.
>> This works when the failover of t from a to d is planned.
So, just to follow-up: I managed to do the switch. The slave 't' has had some network
problems
recently, so its SQL thread is rather behind the master, even though all of the logs are
(finally)
there. Which required a bit of extra care, since most CHANGE MASTER operations dump all
the existing
relay logs (this seems like the wrong choice, but I'm sure there are situations when it is
the
correct one). So I did
STOP SLAVE
SHOW SLAVE STATUS
to get the current relay log file and position, and included those values in the CHANGE
MASTER.
Unfortunately, the server didn't quite like that - it gave the error that it couldn't find
the
specified file, even though it was clearly there. I check the relay-log.info file,
convinced myself
that it had been set up correctly, and restarted the server. That seemed to work, and now
't' is
pulling updates from 'd', and I've shut down 'a'.
Thanks, all.