Charmed MySQL K8s

Channel Revision Published Runs on
8.0/stable 127 22 Mar 2024
Ubuntu 22.04
8.0/candidate 127 18 Mar 2024
Ubuntu 22.04
8.0/beta 132 22 Mar 2024
Ubuntu 22.04
8.0/edge 137 16 Apr 2024
Ubuntu 22.04
juju deploy mysql-k8s --channel 8.0/stable
Show information

Platform:

Switchover / Failover of Async replication

WARNING: it is an internal article. Do NOT use it in production! Contact Canonical Data Platform team if you are interested in the topic.

Pre-requisits

Make sure both Rome and Lisbon Clusters are deployed using the Async Deployment manual!

Switchover (safe)

Assuming Rome is currently Primary and you want to promote Lisbon to be new primary
(Rome will be converted to StandBy member):

juju run -m lisbon db2/leader promote-standby-cluster cluster-set-name=<cluster-set-119185404c15ba547eb5f0750a5c34b5>

where cluster-set-name is a mandatory option to avoid human mistakes.

The cluster-set-name can be set on deployment and retrieved using:

juju run -m rome db1/0 get-cluster-status cluster-set=true

   ...
   domainname: cluster-set-bcba09a4d4feb2327fd6f8b0f4ac7a2c
   ...

Failover (forced)

Warning: this is a dangerous operation which can cause the split-brain situation. It should be executed if Primary cluster is no longer exist (lost) ONLY! Otherwise please use safe switchover procedure above! Also consider to fence the write traffic BEFORE forcing emergency failover.

Assuming Rome was a Primary (before we lost the cluster Rome) and you want to promote Lisbon to be the new primary:

juju run -m lisbon db2/leader promote-standby-cluster cluster-set-name=<cluster-set-bcba09a4d4feb2327fd6f8b0f4ac7a2c> force=True

It’s required to provide the cluster-set-name option as a foolproof method.

Warning: The force will cause the old primary to be invalidated, make sure you have fenced writes there (fencing will reject all writes to the ClusterSet during the emergency failover)!