Tool to bootstrap mariadb replication
This commit is contained in:
parent
160877f19a
commit
51ef2983e9
48
scripts/mariadb-cluster-bootstrap-replication
Executable file
48
scripts/mariadb-cluster-bootstrap-replication
Executable file
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
FROM="${1}"
|
||||
TO="${2}"
|
||||
|
||||
function usage() {
|
||||
echo "Usage: ${0} <from> <to>"
|
||||
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"
|
Loading…
Reference in a new issue