逻辑:
mysqldump
load data/mysqlimport
mydumper
MSQLSHELL —>https://www.toutiao.com/i6996615271389594144/
物理:
Percona Xtrabackup 8.0.12+
Enterprise Backup
8017+ Clone Plugin
逻辑备份工具使用-mysqldump
客户端通用参数
-u -p -S -h -P
本地备份:
mysqldump -uroot -p -S /tmp/mysql.sock
远程备份:
mysqldump -uroot -p -h 10.0.0.51 -P3306
-A 全备参数
-B db1 db2 db3 备份多个单库
备份单个或多个表
-R 备份存储过程及函数
—triggers 备份触发器
-E 备份事件
-F 在备份开始时,刷新一个新binlog日志
—master-data=2
以注释的形式,保存备份开始时间点的binlog的状态信息
使用mysqldump方式恢复的数据会进行覆盖
mysqldump -u root -pwoaini —no-data database > /opt/a.sql ##—no-data只备份表结构
—max_allowed_packet=128M #如果备份时有特别大的表,需要加上次参数
-R -E —triggers ##备份高级对象
mysqldump 备份参数详解
-A 全备参数
-B db1 db2 db3 备份多个单库
备份单个或多个表
-R 备份存储过程及函数
—triggers 备份触发器
-E 备份事件
-F 在备份开始时,刷新一个新binlog日志
—master-data=2
以注释的形式,保存备份开始时间点的binlog的状态信息
功能:
(1)在备份时,会自动记录,二进制日志文件名和位置号
(2)自动锁表(FTWRL)
(3)如果配合—single-transaction,只对非InnoDB表进行锁表备份,InnoDB表进行“热“”备,实际
上是实现 快照备份。
—single-transaction
innodb 存储引擎开启热备(快照备份)功能
案例:
1. 5.6 100+G 有MyISAM表,做大批量DML,mysqldump备份数据库出现hang住。
2. 5.6 3000w表做DDL,改数据类型,备份期间,锁严重。
master-data可以自动加锁
(1)在不加—single-transaction ,启动所有表的温备份,所有表都锁定
(2)加上—single-transaction ,对innodb进行快照备份,对非innodb表可以实现自动锁表功能
—set-gtid-purged=auto 自动
auto , on 开启
off 关闭
使用场景:
1. —set-gtid-purged=OFF,可以使用在日常备份参数中.
mysqldump -uroot -p -A -R -E —triggers —master-data=2 —single-transaction —
set-gtid-purged=OFF >/data/backup/full.sql -A全备参数,-R备份存储过程 -E备份事件,—triggers 备份触发器 —master-data=2 —备份binlog状态 —single-transaction只对非innodb表进行锁表备份 —set-gtid-purged=OFF 关闭GTID
注意:
1、mysqldump在备份和恢复时都需要mysql实例启动为前提。
2、一般数据量级100G以内,大约15-45分钟可以备份成功,但恢复时间通常需要5-10倍时间,数据量级很大
很大的时候(PB、EB)
3、mysqldump是覆盖形式恢复的方法。
一般我们认为,在同数据量级,物理备份要比逻辑备份速度快.
逻辑备份的优势:
1、可读性强
2、压缩比很高
