You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
proxysql/docker/scenarios/repl1/configure_repl_hostgroup.sh

88 lines
2.3 KiB

set -e
. ./vars
declare -a AIPS
declare -a DIPS
declare -a PIPS
echo Retrieving IPs
for i in `seq 1 ${NUMSERVERS}` ; do
DIPS[$i]=`$USESUDO docker inspect -f '{{.NetworkSettings.IPAddress}}' db$i`
done
echo Retrieving Application IPs
for i in `seq 1 ${NUMAPPS}` ; do
AIPS[$i]=`$USESUDO docker inspect -f '{{.NetworkSettings.IPAddress}}' app$i`
done
echo Retrieving ProxySQL IPs
for i in `seq 1 ${NUMPROXIES}` ; do
PIPS[$i]=`$USESUDO docker inspect -f '{{.NetworkSettings.IPAddress}}' proxy$i`
done
configure_ro_dbs() {
export MYSQL_PWD=$ROOTPASS
for i in ${DIPS[*]} ; do
echo "Configuring read_only=$1 on $i"
mysql -u root -h $i -P3306 -e "SET GLOBAL read_only=$1"
done
}
dump_ro_proxies() {
echo "Dumping mysql_servers table"
for i in ${PIPS[*]} ; do
mysql -u admin -h $i -P6032 -e "SELECT * FROM mysql_servers"
done
}
configure_repl_hostgroup() {
echo Configure Replication topology on Cluster Layer
for i in ${PIPS[*]} ; do
echo "Processing ProxySQL on $i"
echo "Configuring monitoring users"
echo "UPDATE global_variables SET variable_value='root' WHERE variable_name='mysql-monitor_username';" | mysql -u admin -h $i -P6032
echo "UPDATE global_variables SET variable_value=\"$ROOTPASS\" WHERE variable_name='mysql-monitor_password';" | mysql -u admin -h $i -P6032
echo "LOAD MYSQL VARIABLES TO RUNTIME" | mysql -u admin -h $i -P6032
echo "SAVE MYSQL VARIABLES TO DISK" | mysql -u admin -h $i -P6032
echo "Setting hostgroups"
echo "DELETE FROM mysql_replication_hostgroups;" | mysql -u admin -h $i -P6032
echo "INSERT INTO mysql_replication_hostgroups VALUES(0,1);" | mysql -u admin -h $i -P6032
echo "LOAD MYSQL SERVERS TO RUNTIME" | mysql -u admin -h $i -P6032
echo "SAVE MYSQL SERVERS TO DISK" | mysql -u admin -h $i -P6032
done
}
export MYSQL_PWD="admin"
configure_repl_hostgroup
configure_ro_dbs 0
export MYSQL_PWD="admin"
echo "ProxySQL should reconfigure the servers"
echo "All servers must be at least in hostgroup 0 , and optionally in hostgroup 1"
echo "We sleep few seconds..."
sleep 5
dump_ro_proxies
configure_ro_dbs 1
export MYSQL_PWD="admin"
echo "ProxySQL should reconfigure the servers"
echo "All servers must be in hostgroup 1 , **NONE** in hostgroup 0"
echo "We sleep few seconds..."
sleep 5
dump_ro_proxies
#echo APP IPs: ${AIPS[*]}
#echo ProxySQL IPs: ${PIPS[*]}
configure_repl_hostgroup