mysqldump备份原理及注意事项

本文详细介绍了MySQL使用mysqldump进行热备的原理,包括通过FLUSH TABLES WITH READ LOCK获取一致性快照,START TRANSACTION WITH CONSISTENT SNAPSHOT确保事务隔离,以及在备份过程中的注意事项,如非InnoDB表的处理和并发性问题。
摘要由CSDN通过智能技术生成

关于MySQL热备,可分为两种方式:

  1. 逻辑备份

  2. 物理备份

对于前者,常用的工具是MySQL自带的mysqldump,对于后者,常用的工具是Percona提供的XtraBackup。

对于规模比较小,业务并不繁忙的数据库,一般都是选择mysqldump。

那么,mysqldump的备份原理是什么呢?

抛开源码不谈,其实我们可以通过打开general log,查看mysqldump全库备份时执行的命令来了解mysqldump背后的原理。

只考虑innodb表的情况如下图所示:
这里写图片描述

打开general log

root@ 04:55:  [sbtest]> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)

其中,general log的存放路径可通过以下命令查看

root@ 04:59:  [sbtest]> show variables like '%general_log_file%';
+------------------+---------------------------+
| Variable_name    | Value                     |
+------------------+---------------------------+
| general_log_file | /data/mysql/localhost.log |
+------------------+---------------------------+
1 row in set (0.00 sec)

执行全库备份

[root@localhost ~]# mysqldump --master-data=2  -R --single-transaction -A -p123456 > lijingkuan.sql
Warning: Using a password on the command line interface can be insecure.
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 

其中

–master-data指定为2指的是会在备份文件中生成CHANGE MASTER的注释。具体在本例中,指的是

-- CHANGE MASTER TO MASTER_LOG_FILE='mybinlog.000008', MASTER_LOG_POS=222448728;

如果该值设置为1,则生成的是CHANGE MASTER的命令,而不是注释。

-R 备份存储过程与函数

–single-transaction 获取InnoDB表的一致性备份。

-A 相当于–all-databases。

下面来看看general log中的内容

170529  5:00:47   215 Connect   root@localhost on 
                  215 Query     /*!40100 SET @@SQL_MODE='' */
                  215 Query     /*!40103 SET TIME_ZONE='+00:00' */
                  215 Query     FLUSH /*!40101 LOCAL */ TABLES
                  215 Query     FLUSH TABLES WITH READ LOCK
                  215 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
                  215 Query     START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
                  215 Query     SHOW VARIABLES LIKE 'gtid\_mode'
                  215 Query     SELECT @@GLOBA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值