Use the
operation to safely perform a change of the primary of a
ReplicaSet to another instance. The current primary is demoted to
a secondary and made read-only, while the promoted instance
becomes the new primary and is made read-write. All other
secondary instances are updated to replicate from the new primary.
MySQL Router instances, which have been bootstrapped against the
ReplicaSet automatically start redirecting read-write clients to
the new primary.
ReplicaSet
.setPrimaryInstance()
For a safe change of the primary to be possible, all ReplicaSet
instances must be reachable by MySQL Shell and have consistent
GTID_EXECUTED
sets. If the primary is not
available, and there is no way to restore it, a forced failover
might be the only option instead, see
Section 9.8, “Forcing a New Primary Instance”.
During a change of primary instance, the promoted instance is synchronized with the old primary, ensuring that all transactions present on the primary are applied before the topology change is committed. If this synchronization step takes too long or is not possible on any of the secondary instances, the operation is aborted. In such a situation, the secondary instances must be repaired or removed from the ReplicaSet for the failover to be possible.