逻辑:
    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、压缩比很高