zoukankan      html  css  js  c++  java
  • MySQL物理备份基础知识(基于xtrabackup2.4版本)

    一 版本说明:

    1、xtrabackup2.4可以备份5.1,5.5,5.6,5.7版本的MySQL,不能备份MySQL8.0及以上版本,
    2、如果要备份MySQL8.x版本,使用xtrabackup8.0版本(xtrabackup8.0.12以前版本不支持MySQL8.0.20及以后版本的备份),
    所以建议使用xtrabackup8.0.12及以上版本,另外xtrabackup8.x只能备份MySQL8.X系列,不能备份MySQL5.X版本
    

    二 xtrabackup8.0.12相比之前版本有哪些新特性:

    1、支持系统表空间加密
    2、支持LZ4加密算法(--compress=lz4   --compress-threads=N).
    

    三 xtrabackup2.4介绍:

    1、备份步骤

    1)开始记录redo log 的LSN
    2) copy innodb表数据文件,与此同时,一个后台进程监视redo log的变化,将变化写入redo log 的备份文件
    3)当innodb数据文件备份完成后,加FLUSH TABLES WITH READ LOCK,备份non-innodb 文件(lock table with backup 代替FTWRL锁,不过只对于percona server 5.6+)
    4) non-innodb文件备份完成后,记录当时的binlog位置,这时备份redo log进程还在
    5)完成redo log备份,释放FTWRL锁,完成备份
    

    2、安装

    当前最新版本2.4.20
    https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/
    1) 解压
    2) 设置环境变量
        vim /etc/profile
        export PATH=$PATH:/usr/local/mysql/bin:/tools/percona-xtrabackup-2.4.20-Linux-x86_64/bin
        source /etc/profile
    

    3、先决条件

    mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
    mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
           'bkpuser'@'localhost';
    mysql> FLUSH PRIVILEGES;
    

    4、备份场景

    1) 全量备份
    2)增量备份
    3)压缩备份
    4)加密备份
    

    5、使用说明

     innobackupex
     innobackupex是xtrabackup的软链接。Innobackupex仍然支持2.2版本所有功能和语法,但现在已被废弃,并将在下一个主要版本中删除。
     xtrabackup
     一个编译的C二进制文件,它提供了备份整个MySQL数据库实例的功能,包括MyISAM、InnoDB和XtraDB表。
     xbcrypt
     用于加密和解密备份文件的实用程序。
     xbstream
     允许流和从xbstream格式提取文件的实用程序。
     xbcloud
     实用程序,用于从/到云下载和上传xbstream存档的全部或部分。
     
     强烈推荐使用xtrabackup工具进行日常备份。
    

    6、xtrabackup主要选项

    1)--backup
       执行备份必须的选项
    
    2)--target-dir
       指定备份到该目录,如果不存在目录,会自动创建(注意不能是级联目录都不存在)
       
    3)DSN(-h -P -u -p -S)   
       指定ip,port,user,password,socket等
       
    
    4)以下两个参数控制当系统中出现长事务时xtrabackup执行FTWRL锁的行为
    
    --ftwrl-wait-threshold=SECONDS 依赖于--ftwrl-wait-timeout=SECONDS,默认值60s,当--ftwrl-wait-timeout=0时,该参数不生效
    --ftwrl-wait-timeout=SECONDS,默认值0,表示不关注长事务,直接执行FTWRL锁。如果非0,表示xtrabackup通过show processlist的方式,获取是否存在sql已经执行超过--ftwrl-wait-threshold 的值,如果超过了,
       则在执行FTWRL锁之前等待--ftwrl-wait-timeout时间,如果该sql未执行完成,xtrabackup进程退出备份。如果一个慢sql刚刚开始执行,执行时间还未超过--ftwrl-wait-threshold 的值,
       那么xtrabackup还是会执行FTWRL锁,这时候执行FTWRL还是会被block住。
       
    
    
    5) --apply-log-only 
       增量备份时,在prepare阶段应用redo日志
       
    6)--binlog-info
       此选项控制xtrabackup备份工具应如何检索与备份对应二进制日志坐标,一般备份无需指定该参数,默认即可
       OFF: 不获取binlog坐标,不会生成xtrabackup_binlog_info文件
       ON: 遍历binlog文件获取坐标,生成xtrabackup_binlog_info文件
       LOCKLESS:目前只在Percona Server实现,官方MySQL版本不支持该值
       AUTO:默认值,在ON和LOCKLESS之间自动选择,优先选择LOCKLESS,如果不支持LOCKLESS,那么选择ON
    
    7)--compress
       此选项告诉xtrabackup使用指定的压缩算法压缩所有输出数据,包括事务日志文件和元数据文件。 目前唯一支持的算法是quicklz,
       结果文件具有qpress存档格式,如*.qp格式
       
    8)--compress-threads=#
       此选项指定xtrabackup用于并行数据压缩的工作线程数。 此选项默认为1。 并行压缩可以与并行文件复制--parallel一起使用。 
       例如, --parallel=4 --compress --compress-threads=2 将创建4个I/O线程,这些线程将读取数据并将其管道到2个压缩线程。
    
    
    9)--copy-back
       将先前备份的所有文件从备份目录复制到实例的数据目录。
       
    10)--move-back
       将先前备份的所有文件从备份目录move到实例的数据目录。
    
    11)--databases=#
     此选项指定应备份的数据库和表列表。 该选项接受表单“databasename1[.table_name1]databasename2[.table_name2]...”的列表]
    
    12)--databases-exclude=name
     不包括基于名称的数据库,操作方式与--databases相同,但匹配的名称不包括在备份中。 请注意,此选项比--databases具有更高的优先级。
    
    13)--databases-file=#
     此选项指定文件的路径,该文件包含应备份的数据库和表列表。 该文件可以包含表单databasename1[.table_name1]的列表元素,每行一个元素。
    
    14)--decompress
        解压.qp文件,可以跟--parallel配合使用,采用多线程解压
    
    15)--defaults-file=[MY.CNF]
        指定my.cnf的路径
        
    16)--export
        用来恢复单个表
        
    17)--parallel=#
        采用多线程备份,可以搭配copy-back,--decompress
        
    18)--prepare
        应用redlo日志,达到数据一致性
        
    19)--safe-slave-backup
    当指定时,xtrabackup将在运行FLUSH TABLES WITH READ LOCK之前停止从SQL线程,并等待直到SHOW状态中的Slave_open_temp_tables为零才开始备份。 
    如果没有打开的临时表,将进行备份,否则将启动和停止SQL线程,直到没有打开的临时表。 如果Slave_open_temp_tables在xtrabackup-safe-slave-backup-timeout秒后没有变为零,
    则备份将失败。 备份完成后将重新启动从SQL线程。这个选项是为了处理复制临时表问题而实现的,row格式不存在该问题。  
        
    20)--slave-info
    此选项在备份从服务器时非常有用。 它打印主服务器的二进制日志位置。 它还将二进制日志坐标写入xtrabackup_slave_info文件,作为Change MASTER命令。 
    可以通过xtrabackup_slave_info文件中的二进制日志位置的CHANGE MASTER命令来设置此主服务器的新从服务器。
    
    21)--throttle=#
    用来限制带宽,默认大小10MB, 如果--throttle=1表示带宽为10MB/S
    
  • 相关阅读:
    UnityShaderVariant的一些探究心得
    NGUI在使用AssetBubble 出现材质丢失错误的情况
    [转] unity调试lua工具和方法
    各种文件的mime类型
    Javascript 随机数
    jQuery文字上下滚动
    Asp.Net Color转换
    Asp.Net 清除Html标签
    jQuery Ajax实例
    Asp.Net Cookie用法
  • 原文地址:https://www.cnblogs.com/mysql-dba/p/13555014.html
Copyright © 2011-2022 走看看