#!/bin/bash set -x set -e FROM="${1}" TO="${2}" function usage() { echo "Usage: ${0} " echo "Example: ${0} db-1.example.com db-2.example.com" exit 1 } if [ -z "${FROM}" ]; then usage fi if [ -z "${TO}" ]; then usage fi # Make sure latest code is in use ssh -o StrictHostKeyChecking=off "${FROM}" "systemctl restart sunet-mariadb.service" echo -n "Waiting for service to restart." for _ in $(seq 1 35); do sleep 1s echo -n '.' done echo "" # Do backup ssh -t "${FROM}" /usr/local/bin/run_manual_backup_dump dump=$(ssh -t "${FROM}" "ls -atr /opt/mariadb/backups/*sql.gz | tail -1| tr -d '\n'") # Copy backup to backup server scp -3 -o StrictHostKeyChecking=off "${FROM}":"${dump}" "${TO}":/opt/mariadb/backups/init.sql.gz # Make sure everything is clean ssh -o StrictHostKeyChecking=off -t "${TO}" "systemctl stop "sunet-mariadb.service ssh -t "${TO}" "rm -rf /opt/mariadb/datadir/*" ssh -t "${TO}" "systemctl restart sunet-mariadb.service" echo -n "Waiting for service to restart." for _ in $(seq 1 10); do sleep 1s echo -n '.' done echo "" # Start replication ssh -t "${TO}" "docker exec -ti mariadb-db-1 /scripts/start_replica_from_init.sh" ssh -t "${TO}" "rm -rf /opt/mariadb/backups/init.sql.gz"