mysql备份

  • 完全备份
  • 差异备份
  • 增量备份
  • 备份的组合
  • 完全备份和差异备份
  • 完全备份和增量备份
  • 备份脚本



mysql备份一般都三种备份种类:完全备份、差异备份、增量备份。

完全备份

备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。

差异备份

差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。(差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,既:备份后不标记为已备份文件,换言之,不清除存档属性)。

mysql差异值_mysql差异值

增量备份

增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存档属性。)

mysql差异值_mysql_02

备份的组合

不同备份类型可以存在一定组合,下面的示例供参考

完全备份和差异备份

在星期一进行完全备份,在星期二至星期五进行差异备份。如果在星期五数据被破坏了,则你只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较少的时间,但还原数据使用较少的时间。

完全备份和增量备份

在星期一进行完全备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则你需要还原星期一正常的备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较少的时间,但还原数据使用较多的时间。

备份脚本

1、需要开启log-bin日志

vim /etc/my.cnf
log-bin=mysql-bin #开启二进制日志

2、增量和全备脚本

#!/bin/bash
MYSQL_BACKUP=`date +%Y%m%d`
MYSQL_LOG_BIN=`ls /var/lib/mysql/mysql-bin.[0-9]* | head -n 1 | sort -rg | head -n 1`
num=$1
if [ ! -d /opt/$MYSQL_BACKUP ];then
	mkdir -p /opt/$MYSQL_BACKUP
fi
#全备
mysql_all(){
	mysqldump -uroot --flush-logs --master-data --all-databases > /opt/$MYSQL_BACKUP/$MYSQL_BACKUP.sql
}

#增备
mysql_increment(){
	mysqldump -uroot --flush-logs
	cp $MYSQL_LOG_BIN  /opt/$MYSQL_BACKUP
}

case $num in
	1)
		mysql_all
		;;
	2)
		mysql_increment
		;;
	*)
		break
esac
#可以把脚本加入定时任务定时备份

MySQL分库自动备份脚本MySQL分表自动备份脚本MySQL入侵邮件报警脚本MySQL分库分表备份脚本