mysql 一致性备份_MYSQL 备份工具mysqldump之一致性快照分析

本文通过实验详细解析MySQLdump工具进行一致性快照备份的过程,包括设置全局读锁、事务隔离级别、开启一致快照、SAVEPOINT及ROLLBACK等关键步骤,确保备份期间数据的准确性。
摘要由CSDN通过智能技术生成

MySQLdump工具是按照一致性快照读的原理设计的因此跟着此原理做了如下实验

1、mysql数据库修改参数

mysql> set global log_output = 'table';

mysql>set global  general_log = on;

2、使用mysqldump命令备份库

/usr/local/mysql/bin/mysqldump -uroot -p -S/tmp/mysql.sock3388 --all-databases --single-transaction --master-data =2 > alldatabase.sql

3、查看general_log分析结果

select * from general_log;

开始备份

FLUSH /*!40101 LOCAL */ TABLES

FLUSH TABLES WITH READ LOCK #拿一把全局读锁

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

--mysql会在session级别设置一个事物隔离级别为RR

START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

--开启一个一致性快照

SHOW MASTER STATUS

unlock tables

SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IS NOT NULL GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE, TOTAL_EXTENTS, INITIAL_SIZE ORDER BY LOGFILE_GROUP_NAME

--查询undo文件名

SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME

--查询datafile

上述两步我在数据库里面都没有查出数据还没理解用处

mysql为了防止备份过程中,由于数据库的数据量很大备份时间长,从而导致undo被覆盖的情况,设计了以下这个步骤

SAVEPOINT sp #设置检查点

依次对数据库以及数据库下的表做备份 dump,dump表的过程中有一些表肯定会有数据持续写入,mysqldump不错处理当dump完成时直接ROLLBACK TO SAVEPOINT sp 回滚到savepoint点,一直到所有的表都dump完成

释放检查点 RELEASE SAVEPOINT sp

从此数据备份完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值