Page MenuHomePhabricator

Switchover s3 master (db1223 -> db1189)
Closed, ResolvedPublic

Description

When: During a pre-defined DBA maintenance windows

Affected wikis:: https://noc.wikimedia.org/conf/highlight.php?file=dblists/s3.dblist

Checklist:

NEW primary: db1189
OLD primary: db1223

  • Check configuration differences between new and old primary:
sudo pt-config-diff --defaults-file /root/.my.cnf h=db1223.eqiad.wmnet h=db1189.eqiad.wmnet

Failover prep:

  • Silence alerts on all hosts:
sudo cookbook sre.hosts.downtime --hours 1 -r "Primary switchover s3 T416298" 'A:db-section-s3'
  • Set NEW primary with weight 0
sudo dbctl instance db1189 set-weight 0
sudo dbctl config commit -m "Set db1189 with weight 0 T416298"
  • Topology changes, move all replicas under NEW primary, open orchestartor to monitor the process and check it at the end.
sudo db-switchover --timeout=25 --replicating-master --read-only-master --only-slave-move db1223 db1189
  • Disable puppet on both nodes
sudo cumin 'db1223* or db1189*' 'disable-puppet "primary switchover T416298"'

Failover:

  • Log the failover:
!log Starting s3 eqiad failover from db1223 to db1189 - T416298
  • Switch primaries:
sudo db-switchover --replicating-master --read-only-master --skip-slave-move db1223 db1189
echo "===== db1223 (OLD)"; sudo db-mysql db1223 -e 'show slave status\G'
echo "===== db1189 (NEW)"; sudo db-mysql db1189 -e 'show slave status\G'
  • Promote NEW primary in dbctl
sudo dbctl --scope eqiad section s3 set-master db1189
sudo dbctl config commit -m "Promote db1189 to s3 primary T416298"

[]x Clean up heartbeat table(s).

sudo db-mysql db1189 heartbeat -e "delete from heartbeat where file like 'db1223%';"
  • Restart puppet on both hosts:
sudo cumin 'db1223* or db1189*' 'run-puppet-agent -e "primary switchover T416298"'

Clean up tasks:

  • change events for query killer:
curl -sS 'https://gerrit.wikimedia.org/r/plugins/gitiles/operations/software/+/refs/heads/master/dbtools/events_coredb_master.sql?format=TEXT' | base64 -d | sudo db-mysql db1189
curl -sS 'https://gerrit.wikimedia.org/r/plugins/gitiles/operations/software/+/refs/heads/master/dbtools/events_coredb_slave.sql?format=TEXT' | base64 -d | sudo db-mysql db1223
  • Update candidate primary dbctl and orchestrator notes
sudo dbctl instance db1223 set-candidate-master --section s3 true
sudo dbctl instance db1189 set-candidate-master --section s3 false
sudo cumin 'dborch*' 'orchestrator-client -c untag -i db1189 --tag name=candidate'
sudo cumin 'dborch*' 'orchestrator-client -c tag -i db1223 --tag name=candidate'
sudo db-mysql db1215 zarcillo -e "select * from masters where section = 's3';"
  • Depool db1223 for maintenance.
sudo dbctl instance db1223 depool
sudo dbctl config commit -m "Depool db1223 T416298"
  • Change db1223 weight to mimic the previous weight db1189:
sudo dbctl instance db1223 edit
  • Update/resolve this ticket.

Event Timeline

Change #1236106 had a related patch set uploaded (by Gerrit maintenance bot; author: Gerrit maintenance bot):

[operations/puppet@production] mariadb: Promote db1189 to s3 master

https://gerrit.wikimedia.org/r/1236106

Marostegui triaged this task as Medium priority.
Marostegui moved this task from Triage to In progress on the DBA board.
Marostegui updated the task description. (Show Details)

Mentioned in SAL (#wikimedia-operations) [2026-02-03T09:37:37Z] <marostegui@cumin1003> dbctl commit (dc=all): 'Set db1189 with weight 0 T416298', diff saved to https://phabricator.wikimedia.org/P88455 and previous config saved to /var/cache/conftool/dbconfig/20260203-093736-marostegui.json

Mentioned in SAL (#wikimedia-operations) [2026-02-03T09:37:53Z] <marostegui@cumin1003> DONE (PASS) - Cookbook sre.hosts.downtime (exit_code=0) for 1:00:00 on 25 hosts with reason: Primary switchover s3 T416298

Change #1236106 merged by Marostegui:

[operations/puppet@production] mariadb: Promote db1189 to s3 master

https://gerrit.wikimedia.org/r/1236106

Mentioned in SAL (#wikimedia-operations) [2026-02-03T09:38:42Z] <marostegui> Starting s3 eqiad failover from db1223 to db1189 - T416298

Mentioned in SAL (#wikimedia-operations) [2026-02-03T09:40:39Z] <marostegui@cumin1003> dbctl commit (dc=all): 'Promote db1189 to s3 primary T416298', diff saved to https://phabricator.wikimedia.org/P88456 and previous config saved to /var/cache/conftool/dbconfig/20260203-094038-marostegui.json

Mentioned in SAL (#wikimedia-operations) [2026-02-03T09:41:17Z] <marostegui@cumin1003> dbctl commit (dc=all): 'Depool db1223 T416298', diff saved to https://phabricator.wikimedia.org/P88457 and previous config saved to /var/cache/conftool/dbconfig/20260203-094116-marostegui.json

Marostegui updated the task description. (Show Details)

Leaving db1223 depooled for a schema change.