逻辑备份

mysqldump备份

image.png

  • —master-data=1:保存数据的偏移量
    • 1:CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000090’, MASTER_LOG_POS=107;
    • 2:CHANGE MASTER TO 语句会被写成一个SQL comment(注释),从而只提供信息;
  • —single-transaction:开启事务,确保数据一致性
  • — routines —triggers —events:存储过程、触发器、计划任务
  • —set-gtid-purged=off:关闭gtid:输出中不会加入SQL_LOG_BIN=0和GTID_PURGED的设置。如果要将数据导入从库进行初始化,则不能设置—set-gtid-purged=off【为啥】
  • —flush-logs:备份后切换binlog文件
  • -w:跟条件

恢复:source

压缩备份&恢复

压缩备份:
image.png
压缩恢复:
image.png

—master-data

mysqldump命令详解 Part 7- —master-data参数的使用 - 知乎
image.png
image.png
image.png
image.png
—master-data=2;

mysqldump原理

image.png

  • /!40101 SET NAMES gbk /; 代表的是 如果mysql 版本大于4.0.1.01 ,就执行后面的 set names gbk 这句代码。
  • show master status获取同步位置,此过程需要加锁ftwrl
  • flush tables 为了ftwrl性能
  • ftwrl有什么用?

MySQLdump里的秘密,终于被我发现了 - 云+社区 - 腾讯云

mysqldump中的savepoint

mysqldump与innobackupex备份过程你知多少(二) - 云+社区 - 腾讯云
image.png

  • ROLLBACK TO SAVEPOINT 语句还有一个作用,可以释放在设置保存点之后事务持有的MDL锁,这点便是mysqldump需要使用保存点的关键点。