使用mysqldump逻辑备份mysql

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

针对数据量比较小的数据库,可以使用mysqldump进行逻辑备份。

建议数据库大小在5G以下,备份速度跟物理备份可能差不多,最好在从库或专有备份库上备份,如果是单库,建议是凌晨5点

cat mysqldump.sh

#!/bin/bash
# mysql_config_editor set --login-path=root3306 --user=root  --host=127.0.0.1 --port=3306 --socket=/data/3306/mysql.sock --password

export MYSQL_TEST_LOGIN_FILE=/root/.mylogin.cnf

Day=`date -d 'today' +%Y%m%d`
Day14=`date -d '14 days ago' +%Y%m%d`
Bkdir='/data/mysqldump'
mkdir -p $Bkdir

Dbname=`/usr/local/mysql/bin/mysql --login-path=root3306 -e "show databases" | grep -Ev "^test$|information_schema|performance_schema|Database|sys|mysql"`

for i in $Dbname
  do
   /usr/local/mysql/bin/mysqldump --login-path=root3306 --single-transaction --master-data=2 --routines --flush-privileges --databases  $i |gzip > $Bkdir/"$i"."$Day".sql.gz
done

find $Bkdir -name "*$Day14.sql.gz" -exec rm -f {} \;
#Linux解压缩保留源文件的方法:
#gunzip –c filename.gz > filename

几个常见参数说明,默认都是FALSE

# single-transaction 适用innodb,目的是保持一致性
# master-data=2 导出的sql中会有change master to 方便做从库
# routines 备份存储过程(函数),根据你的需要,还可以-E 备份事件
# flush-logs 刷新日志(binlog,error logs,slow logs)

转载于:https://my.oschina.net/longquan/blog/1801632

你可能感兴趣的:(数据库,python)