5.2MySQL备份工具
物理备份
冷备份:cp tar
逻辑备份
mysqldump
mysqldump:是MySQL的客户端命令,通过mysql协议连接至mysql服务器进行备份
-A,--all-database #备份所有数据库,含create database
-B,--database db_name #指定备份的数据库,包括create database语句
-E,--events #备份相关的所有event scheduler
-R,--routines #备份所有存储过程的自定义函数
--triggers #备份表相关触发器,默认启用,用--skip-triggers不备份触发器
--default-character-set=utf8 #指定字符集
-d,--no-data #只备份表结构,不备份数据
-t,--no-create-info #只备份数据 ,不备份表结构
-n,--no-create-db #不备份create database,可被-A或-B覆盖
-f,--force #忽略SQL错误,继续执行
--master-data=[#]
#1:所备份的数据之前添加一条记录为change master
to
语句,非注释,不指定默认为1 ,适合主从复制多机使用
#2:记录为被注释的#change master
to
语句,适合于单机使用
-F
--flush-logs #备份前滚动日志,锁表完成后,执行flush logs命令,生成新的二进制日志文件,建议配合--master-data使用<br>-x--single-transaction 使用可重复读的事务隔离级别<br>--hex-blob 使用十六进制符号转储二进制列,当有包含binary,varbinary blob bit的数据类型的列时使用,避免乱码
InnoDB建议备份策略
mysqldump –uroot -p –A –F –E –R --triggers --single-transaction --master-data=1 --flush-privileges --default-character-set=utf8 --hex-blob >${BACKUP}/fullbak_${BACKUP_TIME}.sql
MyISAM建议备份策略
mysqldump –uroot -p –A –F –E –R –x --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob >${BACKUP}/fullbak_${BACKUP_TIME}.sql
分库备份脚本
#!/bin/bash
TIME=`date +%F_%H-%M-%S`
DIR=/backup
[ -d "$DIR" ] || mkdir $DIR
for DB in `mysql -e "show databases" |grep -Ev "^Database|.*schema$"`;do
mysqldump -F --single-transaction --master-data=2 --default-character-set=utf8 -q -B $DB | gzip > ${DIR}/${DB}_${TIME}.sql.gz
done
利用二进制日志还原数据库最新状态
1、开启二进制日志并独立存放备份
2、完全备份并记录二进制位置
3、修改数据库
4、损坏数据
5、还原
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律