Thursday, February 20, 2025

.::: Script Backup Database MariaDB from Master & Check from MaxScale :::.

 
1. Check maxscale

[root@ha01 test]# ip a | grep -i 10.10
    inet 10.10.10.15/24 brd 10.10.10.255 scope global noprefixroute ens33
    inet 10.10.10.110/32 scope global ens33
[root@ha01 test]#

maxctrl list servers

 

2. Sample check using query

[root@ha01 test]# cat info.sh
status=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $2, $4, $6, $10}')
server1=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $2}')
ipx=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $4}')
portx=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $6}')
connectionx=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $8}')
statex=$(maxctrl list servers | awk '$6 == "3306" && $10 ~ /Master/ {gsub(",", "", $10); print $10}')

echo "status $status"
echo "server $server1"
echo "ip $ipx"
echo "port $portx"
echo "connection $connectionx"
echo "state $statex"

[root@ha01 test]#
[root@ha01 test]# sh info.sh
status gtid01-v31 10.10.10.31 3306 Master
server gtid01-v31
ip 10.10.10.31
port 3306
connection 0
state Master
[root@ha01 test]#


3. script sample
[root@ha01 fix]# cat backup_from_maxscale.sh

#!/bin/bash
echo "scrip.sh <cluster>"
vcuster=$1

#!/bin/bash

status=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $2, $4, $6,$8, $10}')
server1=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $2}')
ipx=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $4}')
portx=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $6}')
connectionx=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $8}')
statex=$(maxctrl list servers | awk -v cluster="$vcuster" '$6 == cluster && $10 ~ /Master/ {gsub(",", "", $10); print $10}')

# Cek apakah variabel portx kosong
if [[ -z "$vcuster" ]]; then
    echo "Server not Found"
else
    # Jalankan isi dari variabel portx
    echo "Server Found in Cluster $vcuster with status $status"

echo "server : $server1"
echo "ip     : $ipx"
echo "port   : $portx"
echo "connect: $connectionx"
echo "state  : $statex"

echo "backup all database from $server1 $ipx $portx"
mysql -h $ipx -uadmin -padmin -e "select @@hostname,@@version;"
mysql -h $ipx -uadmin -padmin -e "show databases;"
mysqldump -h $ipx -uadmin -padmin -P$portx --all-databases --single-transaction --skip-lock-tables > backupdball.sql
ls -lh
echo "backup selesai"

fi
[root@ha01 fix]#
 


No comments:

Post a Comment

Popular Posts