check if server use log_bin and backup up master data accordingly
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#! /bin/bash
|
||||||
|
|
||||||
# script de sauvegarde mysql
|
# script de sauvegarde mysql
|
||||||
# pour version 5.7, ne sauvegarde pas la base information_schema
|
# pour version 5.7, ne sauvegarde pas la base information_schema
|
||||||
@@ -12,11 +12,17 @@ error=0
|
|||||||
mkdir -p $dir
|
mkdir -p $dir
|
||||||
cd $dir
|
cd $dir
|
||||||
|
|
||||||
|
# check if we use binlog
|
||||||
|
|
||||||
|
log_bin=$(mysql --defaults-file=${defaultfile} --batch -e "show variables like 'log_bin'" --skip-column-names| awk '{print $2}')
|
||||||
|
|
||||||
|
if [ log_bin='OFF' ] ; then master_data_option='' ; else master_data_option='--master-data=2' ; fi
|
||||||
|
|
||||||
bases=$(mysql --defaults-file=${defaultfile} --batch -e 'show databases' --skip-column-names)
|
bases=$(mysql --defaults-file=${defaultfile} --batch -e 'show databases' --skip-column-names)
|
||||||
for b in $bases ; do
|
for b in $bases ; do
|
||||||
if [ "$b" == "information_schema" ] ; then continue ; fi
|
if [ "$b" == "information_schema" ] ; then continue ; fi
|
||||||
if [ "$b" == "performance_schema" ] ; then continue ; fi
|
if [ "$b" == "performance_schema" ] ; then continue ; fi
|
||||||
mysqldump --defaults-file=${defaultfile} --master-data=2 --single-transaction --events --databases $b --opt > ${b}.sql
|
mysqldump --defaults-file=${defaultfile} --single-transaction $master_data_option --events --routines --databases $b --opt > ${b}.sql
|
||||||
let "error=$error+$?"
|
let "error=$error+$?"
|
||||||
gzip --force ${b}.sql
|
gzip --force ${b}.sql
|
||||||
done
|
done
|
||||||
@@ -28,4 +34,3 @@ if [ $error -eq 0 ] ; then
|
|||||||
find $rdir -maxdepth 1 -type d -mtime +${rotate} -exec rm -fr {} \;
|
find $rdir -maxdepth 1 -type d -mtime +${rotate} -exec rm -fr {} \;
|
||||||
fi
|
fi
|
||||||
exit $error
|
exit $error
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user