Mysql备份(全量+增量+恢复)方案操作记录

本文详细介绍了MySQL数据库的备份与恢复方法,包括全量备份、增量备份及自动执行的脚本实现。通过shell脚本自动化处理,确保了数据的安全性和业务连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、开启mysql的binlog日志&查看$备份

2、shell脚本

mysqldump 变量说明

--all-databases针对所有数据库进行备份

 --databases databasename 针对单个数据库进行备份
--flush-logs为结束当前日志,生成新日志文件;
--master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称,

用于日后恢复时参考,例如输出的备份SQL文件中含有:
CHANGE MASTER TO MASTER_LOG_FILE=’MySQL-bin.000002′, MASTER_LOG_POS=106;

3.mysqldump 增量备份其他说明:
如果mysqldump 加上–delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用mysqldump –delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用 PURGE MASTER LOGS更为安全。

每日定时使用 MySQLadmin flush-logs来创建新日志,并结束前一日志写入过程。并把前一日志备份,例如上例中开始保存数据目录下的日志文件 MySQL-bin.000002 , ...

#!/bin/bash
user=root
passwd=root!
backup_dir=/var/lib/mysql/backup/
name_dir=$(date +%F"-%H")
single_database=test
binlog_dir=/var/lib/mysql/binlog

if [ ! -d $backup_dir ];  then
	mkdir -p $backup_dir
fi
if [ ! -d  $backup_dir$name_dir ];  then
	mkdir -p $backup_dir$name_dir
fi
#全量备份
mysql_all(){
	
	cd $backup_dir$name_dir
	mysqldump -u$user -p$passwd  --master-data --flush-logs --all-databases > $backup_dir$name_dir/$name_dir.sql
}
#单个数据库备份
mysql_single(){
	
	cd $backup_dir$name_dir
	mysqldump -u$user -p$passwd --master-data --flush-logs --databases $single_database > $backup_dir$name_dir/$name_dir-$single_database.sql
}
#增量备份
mysql_increment(){
	
    cd $binlog_dir
	mysqladmin -u$user -p$passwd flush-logs
	cp $(ls mysql-bin.[0-9]* | head -n -1 | sort -rg | head -n 1) $backup_dir$name_dir/
}
$1

3、自动执行备份

该脚本已经测试过,可以使用。只需要设置计划任务即可。
设置计划任务:

在周五实行全备。

在周一到周六实行增量备份。

因为过期日志在七天会自动清除。

crontab -e
0 1 * * 0 /bin/bash /root/mysqldump.sh mysql_all >/dev/operate_`date +"\%Y\%m\%d"`.log 2>&1
0 1 * * 1-6 /bin/bash /root/mysqldump.sh mysql_increment >/dev/operate_`date +"\%Y\%m\%d"`.log 2>&1

4、生成文件

5、恢复文件

(1)use对应的数据库;
(2)利用source命令即可恢复数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值