As part of upgrading s7 to debian buster/mariadb 10.4, we need to switch the primary to be db2121 (which is already running buster/10.4).
**When:** FIXME
**Checklist:**
[] Create a task to communicate the chosen date and send an announcement to the community: FIXME
NEW primary: db2121
OLD primary: db2118
[] Check configuration differences between new and old primary:
```
sudo pt-config-diff h=db2118.eqiad.wmnet,F=/root/.my.cnf h=db2121.eqiad.wmnet,F=/root/.my.cnf
```
**Failover prep:**
[] Silence alerts on all hosts:
```
sudo cookbook sre.hosts.downtime --hours 1 -r "Primary switchover s7 T289129" 'A:db-section-s7'
```
[] Set NEW primary with weight 0
```
sudo dbctl instance db2121 set-weight 0
sudo dbctl config commit -m "Set db2121 with weight 0 T289129"
```
[] Topology changes, move all replicas under NEW primary
```
sudo db-switchover --timeout=15 --only-slave-move db2118.eqiad.wmnet db2121.eqiad.wmnet
```
[] Disable puppet on both nodes
```
sudo cumin 'db2118* or db2121*' 'disable-puppet "primary switchover T289129"'
```
[] Merge gerrit puppet change to promote NEW primary: FIXME
**Failover:**
[] Log the failover:
```
!log Starting s7 eqiad failover from db2118 to db2121 - T289129
```
[] Set section read-only:
```
sudo dbctl --scope eqiad section s7 ro "Maintenance until 05:15 UTC - T289129"
sudo dbctl config commit -m "Set s7 eqiad as read-only for maintenance - T289129"
```
[] Check s7 is indeed read-only
[] Switch primaries:
```
sudo db-switchover --skip-slave-move db2118 db2121
echo "===== db2118 (OLD)"; sudo mysql.py -h db2118 -e 'show slave status\G'
echo "===== db2121 (NEW)"; sudo mysql.py -h db2121 -e 'show slave status\G'
```
[] Promote NEW primary in dbctl, and remove read-only
```
sudo dbctl --scope eqiad section s7 set-master db2121
sudo dbctl --scope eqiad section s7 rw
sudo dbctl config commit -m "Promote db2121 to s7 primary and set section read-write T289129"
```
[] Restart puppet on both hosts:
```
sudo cumin 'db2118* or db2121*' 'run-puppet-agent -e "primary switchover T289129"'
```
**Clean up tasks:**
[] change events for query killer:
```
events_coredb_master.sql on the new primary db2121
events_coredb_slave.sql on the new slave db2118
```
[] Update DNS: FIXME
[] Update candidate primary dbctl notes
```
sudo dbctl instance db2118 set-candidate-master --section s7 true
sudo dbctl instance db2121 set-candidate-master --section s7 false
```
[] Check tendril was updated
[] Check zarcillo was updated
** db-switchover should do this. If it fails, do it manually: https://phabricator.wikimedia.org/P13956
[] Depool OLD primary, as it's running 10.1, replicating from a 10.4 primary
```
sudo dbctl instance db2118 depool
sudo dbctl config commit -m "Depool db2118 until it's reimaged to buster T289129"
```
[] Apply outstanding schema changes to db2118 (if any)
[] Update/resolve this ticket.