zoukankan      html  css  js  c++  java
  • MySQL备份利器-xtrabackup的介绍和原理(附脑图)

    标签(linux): mysql-xtrabackup

    笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流
    • xtrabackup是Percona公司针对mysql数据库开发的一款开源免费的物理备份(热备)工具

    • 可针对InnoDB和XtraDB等事务引擎的数据库实现不锁表方式的备份

    • 可针对MyISAM等非事务引擎的数据库实现不锁表方式的备份


    一、xtrabackup的七大特点

    1.直接拷贝物理文件,备份和恢复数据的速度非常快、安全可靠

    2.在备份期间执行的事务不会间断,备份InnoDB数据不影响业务

    3.备份期间不增加太多数据库的性能压力

    4.支持对备份的数据自动校验

    5.支持全量、增量、压缩备份及流备份

    6.技持在线迁移表以及快速创建新的从库

    7.支持几乎所有版本的MySQL和MariaDB


    二、xtrabackup的备份原理及过程

    
    第一步:
            记录当前redo日志位置(即对应的LSN号)
    
    第二步:
            在后台启动一个进程持续监视redo日志文件的变化
    
    第三步:
            同时将变化的信息记录到xtrabackup_logfile中
    
    第四步:
            针对所有的innodb数据文件进行备份(复制)
    
    第五步:
            备份完成后执行“flush tables with read lock”,对数据库锁表
    
    第六步:
            备份(复制)MyISAM等非事务引擎的数据文件
    
    第七步:
            待InnoDB、MyISAM数据文件、redo日志备份完毕后,获取binlog二进制日志位置点信息
    
    第八步:
            执行unlock tables解锁命令,回复数据库可读写状态
    

    三、innobackupex增量备份(仅对InnoDB引擎有效)

    原理

    拷贝备份之后的InnoDB中变更的“页”数据

    拷贝时以全备中xtrabackup_checkpoints文件对应的LSN号为依据

    将大于给定的LSN号的页数据(即增量数据)进行备份

    因要比对全备LSN号,第一次增量是基于全备的,后每次增量基于上次增备


    备份时发生了什么

    第一步:
            在全备的xtrabackup_checkpoints logfile中找到并记录最后一个checkoint(last checkpint LSN)
    
    第二步:
            从该LSN的位置拷贝InnoDB的redo日志到xtrabackup_logfile
    
    第三步:
            开始备份全部的数据文件:ibd
    
    第四步:
            待全部数据拷贝结束后,停止拷贝logfile
    

    四、InnoDB日志

    1.Redo日志

    		也称事务日志,是Innodb引擎重要组成部分
    		记录Innodb引擎中每个数据发生的变化信息
    		用于保证innodb数据的完整性,及丢数据后的恢复
    		可有效提升数据库的IO性能
    		配置参数为
    			innodb_log_file_size
    			innodb_log_files_in_group
    

    2.Undo日志

    		记录事务的逆向逻辑操作或者逆向物理操作对应的数据变化的内容
    		默认存放在共享表空间里面的(ibdata*文件)
    		和Redo日志功能不同Undo日志主要用于回滚数据库崩溃前未完整提交的事务数据
    		确保数据恢复前后一致
    

    3.LSN

    		全拼log Sequence Number
    		意为日志序列号
    		64位的整型数字
    		用于记录Redo日志时,使用LSN唯一标识一条变化的数据
    

    4.Checkpoint

    		用来标识数据库崩溃后,应恢复的redo log的起始点
    

    五、xtrabackup脑图

    注:纯装X用。。

  • 相关阅读:
    P2257 YY的GCD(莫比乌斯反演)
    P2522 [HAOI2011]Problem b(莫比乌斯反演)
    HAProxy 配置文件
    Android5.1 默认主launcher、强制主launcher
    【Spring 从0开始】IOC容器的Bean管理
    【Spring 从0开始】IOC容器的Bean管理
    【Spring 从0开始】IOC容器的Bean管理
    Linux 命令里两个连续的减号(--)是表示什么?
    从k8s集群中删除节点后重新加入的方法
    下载外网docker镜像的方法
  • 原文地址:https://www.cnblogs.com/Csir/p/6940607.html
Copyright © 2011-2022 走看看