* separate start master-to-master replication
This commit is contained in:
36
replication-master-to-master.sh
Executable file
36
replication-master-to-master.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
CONFIG_FILE=$DIR/config.sh
|
||||
[[ ! -r "${CONFIG_FILE}" ]] && { echo "Could not read ${CONFIG_FILE}!"; exit 1; }
|
||||
set -a
|
||||
. "${CONFIG_FILE}"
|
||||
set +a
|
||||
|
||||
echo "Started activation of master-to-master replication" >> $log_file
|
||||
|
||||
echo "Stop remote slave" >> $log_file
|
||||
mysql --defaults-extra-file=./.remote.my.cnf -e "STOP SLAVE;"
|
||||
|
||||
echo "Execute command on local server with push local binlog position to remote server" >> $log_file
|
||||
|
||||
LOCAL_SQL=
|
||||
|
||||
for i in ${databases[@]}
|
||||
do
|
||||
LOCAL_SQL=LOCAL_SQL' USE '$i'; FLUSH TABLES WITH READ LOCK;'
|
||||
done
|
||||
|
||||
LOCAL_SQL=LOCAL_SQL' system ./_activate-master-to-master.sh;'
|
||||
|
||||
for i in ${databases[@]}
|
||||
do
|
||||
LOCAL_SQL=LOCAL_SQL' USE '$i'; UNLOCK TABLES;'
|
||||
done
|
||||
|
||||
mysql --defaults-extra-file=./.my.cnf -e "$REMOTE_SQL"
|
||||
|
||||
echo "Start remote slave" >> $log_file
|
||||
|
||||
mysql --defaults-extra-file=./.remote.my.cnf -e "START SLAVE;"
|
||||
|
||||
|
@ -35,32 +35,7 @@ echo "Start local slave" >> $log_file
|
||||
mysql --defaults-extra-file=./.my.cnf -e "START SLAVE;"
|
||||
|
||||
if [[ "$1" = "master-to-master" ]]; then
|
||||
echo "Started activation of master-to-master replication" >> $log_file
|
||||
|
||||
echo "Stop remote slave" >> $log_file
|
||||
mysql --defaults-extra-file=./.remote.my.cnf -e "STOP SLAVE;"
|
||||
|
||||
echo "Execute command on local server with push local binlog position to remote server" >> $log_file
|
||||
|
||||
LOCAL_SQL=
|
||||
|
||||
for i in ${databases[@]}
|
||||
do
|
||||
LOCAL_SQL=LOCAL_SQL' USE '$i'; FLUSH TABLES WITH READ LOCK;'
|
||||
done
|
||||
|
||||
LOCAL_SQL=LOCAL_SQL' system ./_activate-master-to-master.sh;'
|
||||
|
||||
for i in ${databases[@]}
|
||||
do
|
||||
LOCAL_SQL=LOCAL_SQL' USE '$i'; UNLOCK TABLES;'
|
||||
done
|
||||
|
||||
mysql --defaults-extra-file=./.my.cnf -e "$REMOTE_SQL"
|
||||
|
||||
echo "Start remote slave" >> $log_file
|
||||
|
||||
mysql --defaults-extra-file=./.remote.my.cnf -e "START SLAVE;"
|
||||
./replication-master-to-master.sh;
|
||||
fi
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user