MySQL 数据库快照备份
发布于 2021-05-13 21:23 ,所属分类:数据库和大数据技术学习资料
主要使用MySQL
自带的mysqldump
工具实现。
业务场景:对生产数据库的从库进行数据备份,生产系统是主从复制架构,并且未设置延迟复制。
一、封装执行脚本
#!/bin/bash
number=5
backup_dir=/root/mysqlbackup
dd=`date+%Y-%m-%d-%H-%M-%S`
tool=mysqldump
username=root
password=$%BNK$%HJK
database_name=-A
if[!-d$backup_dir];
then
mkdir-p$backup_dir;
fi
$tool-u$username-p$password$database_name>$backup_dir/$database_name-$dd.sql
echo"create$backup_dir/$database_name-$dd.dupm">>$backup_dir/log.txt
delfile=`ls-l-crt$backup_dir/*.sql|awk'{print$9}'|head-1`
count=`ls-l-crt$backup_dir/*.sql|awk'{print$9}'|wc-l`
if[$count-gt$number]
then
rm$delfile
echo"delete$delfile">>$backup_dir/log.txt
fi
二、设置Linux cron定期执行
Linux
安装cron
服务,百度烂大街的。
使用root
用户创建cron
规则文件,例如mysqldump.cron
。
并在cron
文件中添加如下内容(Linux
cron
语法文章末尾有链接):
202***./etc/profile;/bin/sh/root/mysqlbackup/mysql_dump_script.sh
(上面命令的意思就是,每天的2:20
执行一次mysql_dump_script.sh
脚本)。
然后使用命令行crontab
命令添加Linux
定时任务。
#添加
crontabmysqldump.cron
#查看是否添加成功
crontab-l
三、关于mysqldump的使用
mysqldump
是 MySQL
自带的逻辑备份工具。
它的备份原理是通过协议连接到 MySQL
数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert
语句,当我们需要还原这些数据时,只要执行这些 insert
语句,即可将对应的数据还原。
#导出所有数据库
mysqldump-uroot-proot--all-databases>/tmp/all.sql
#导出db1、db2两个数据库的所有数据
mysqldump-uroot-proot--databasesdb1db2>/tmp/user.sql
#导出db1中的a1、a2表
#注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据
mysqldump-uroot-proot--databasesdb1--tablesa1a2>/tmp/db1.sql
其他更多资料建议参考博客:
MySQL之mysqldump的使用:
https://www.cnblogs.com/markLogZhu/p/11398028.html
MySQL mysqldump数据导出详解:
https://www.cnblogs.com/chenmh/p/5300370.html
四、关于Linux cron的使用
以下列出几个比较全的博客:
菜鸟Linux crontab 命令:
https://www.runoob.com/linux/linux-comm-crontab.html
每天一个linux命令(50):crontab命令:
https://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
Linux下的crontab定时执行任务命令详解:
https://blog.csdn.net/wade3015/article/details/90289751
相关资源