Linux7_MySQL5.7_ master-slave replication _scripts

# cat my_full_backup.sh 
#!/bin/bash 
BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` 
format_time=`date +"%Y-%m-%d_%H:%M:%S"` 
week=`date +%w` 
port=3306 
ip=192.168.1.101 
backdir=/tmp/xtrabackup 
file_cnf=/app/mysqldata/3306/my.cnf 
user_name=xtrabk
password=onlybackup
out_log=$backdir/Xtrabackup_log_$format_time 
time_cost=$backdir/Xtrabackup_time.txt
mysql_path=/usr/bin

mkdir -p $backdir

#full 
if [ ! -d "$backdir/full" ];then
        echo "#####start full backup at $BEGINTIME to directory full" >>$time_cost
        ${mysql_path}/innobackupex --defaults-file=$file_cnf --no-timestamp --parallel=4 --throttle=200 --kill-long-queries-timeout=300 --kill-long-query-type=select --user=$user_name --password=$password   --host=$ip --port=$port  $backdir/full 1> $out_log 2>&1
be
ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`
begin_data=`date -d  "$BEGINTIME" +%s`
end_data=`date -d  "$ENDTIME" +%s`
spendtime=`expr $end_data - $begin_data`
echo "it takes $spendtime sec for packing the data directory" >>$time_cost

 

# CAT my_full_recover_slave.sh 
# NOTE: Before you begin make sure mysql restore service to stop and clear the data and log directory, such as 
RM -rf / App / mysqldata / 3306 / the Data / * 
RM -rf / App / mysqldata / 3306 / binlog / * 
RM -rf / App / mysqldata / 3306 / redolog / * 
RM -rf / App / mysqldata / 3306 / tmp / * 
RM -rf / App / mysqldata / 3306 / undolog / *
 # RM -rf / App / mysqldata / 3306 / /app/mysqldata/3306/slow-queries.log the error.log 

iNNOBACKUPEX = innobackupex
INNOBACKUPEX_PATH=/usr/bin/$INNOBACKUPEX
TMP_LOG="/tmp/restore.$$.log"
MY_CNF=/etc/my.cnf
BACKUP_DIR = / tmp / xtrabackup # your home directory backup 
FULLBACKUP_DIR = $ BACKUP_DIR / Full # full database backup directory 
the MEMORY = 2048M # restore memory when the number of restrictions on the use of 
ERRORLOG = `grep -i " ^ log-error " $ MY_CNF | Cut -f 2 = -d `
MYSQLD_SAFE=/usr/local/mysql/bin/mysqld_safe
MYSQL=/usr/local/mysql/bin/mysql  
MYSQL_PORT=3306
SOCK_FILE=/app/mysqldata/3306/mysql.sock
MASTER_DB_IP=192.168.1.101
MASTER_DB_PORT=3306
master_user=xtrabk
master_password=onlybackup


check_innobackupex_fail()
{
    if [ -z "`tail -2 $TMP_LOG | grep 'completed OK!'`" ] ; then
    echo " $ INNOBACKUPEX command fails: " ; echo
    echo " ---------- ---------- $ INNOBACKUPEX error output "
    cat $TMP_LOG
    # Retains a copy of the detailed log 
    logfiledate = restore.`date the Y +% m%%% D% H M`.txt
    cat $TMP_LOG>/tmp/$logfiledate  
    rm -f $TMP_LOG
    exit 1
  be
}


echo " **************************************************************** " 
echo " the Prepare: Use the full backup to restore ......... .. " 
echo " **************************************************************** " 
$ INNOBACKUPEX_PATH --defaults-File = $ MY_CNF --apply-log --redo-only --use-memory = $ MEMORY $ FULLBACKUP_DIR> $ TMP_LOG 2> & 1
check_innobackupex_fail


echo " **************************************************************** " 
echo " Copyback: Restore the database ... please wait " 
echo " ** *************************** " 
$ INNOBACKUPEX_PATH --defaults-File Back---copy MY_CNF = $ $ FULLBACKUP_DIR> $ TMP_LOG 2> . 1 & 
chown -R & lt MySQL: MySQL / App / mysqldata / 3306
check_innobackupex_fail

rm -f $TMP_LOG
echo " 1. Congratulations, reduction success!. " 
echo " **************************************************************** "


# Start mysql automatically
INIT_NUM = 1
if [ ! -x $MYSQLD_SAFE ]; then
  echo " boot file is not installed when installing mysql to $ MYSQLD_SAFE or no execute permissions " 
  Exit 1   # 0 is executed successfully, 1 was successfully executed 
the else 
echo " to start the native mysql port: $ MYSQL_PORT service " 
$ MYSQLD_SAFE --defaults = $ MY_CNF -file> / dev / null &
 the while   [$ INIT_NUM -le 10 ]
      do
        PORTNUM=`netstat -lnt|grep ${MYSQL_PORT}|wc -l`
        echo " MySQL startup .... Please wait ... " 
        SLEEP 10
         IF [$ PortNum = 1   ];
        then
             echo -e " \ E [32M starts successfully MySQL **** **** \ E [m "

             GTID_PURGED=`cat $FULLBACKUP_DIR/xtrabackup_binlog_info | awk '{print $3}'`
             SQL1="reset master;SET @@GLOBAL.GTID_PURGED='$GTID_PURGED';"        
             SQL2="change master to master_host='$MASTER_DB_IP',master_port=$MASTER_DB_PORT,master_user='$master_user',master_password='$master_password',master_auto_position=1;"
             SQL3="set global read_only=on;set global super_read_only=on;"
             SQL4="start slave;"
                                                            
             $MYSQL -uroot -pmsds007 -S $SOCK_FILE -e "$SQL1"
             $MYSQL -uroot -pmsds007 -S $SOCK_FILE -e "$SQL2"
             $MYSQL -uroot -pmsds007 -S $SOCK_FILE -e "$SQL3"
             $MYSQL -uroot -pmsds007 -S $SOCK_FILE -e "$SQL4"
             sleep 2

             MYSQL Based $ -uroot--pmsds007 -S -e $ SOCK_FILE " Show Slave Status \ G " 
             echo -e " \ E [32M arranged from MySQL database successfully \ E [m "
             exit 0
        be  
        INIT_NUM = $ (($ INIT_NUM +1 ))
      done
echo -e " \ E [MySQL 31M fails to start or start-up time is too long, check error logs echo` 'CAT' the ERRORLOG} {$ `\ E [m " 
echo " ************ ************************************************************ "
exit 0
be

exit 0

 

Guess you like

Origin www.cnblogs.com/allenhu320/p/11316723.html