• 使用Xtrabackup备份-mysql8


    下载安装xtrabackup

    官方下载地址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST/
    官方安装步骤:https://www.percona.com/doc/percona-xtrabackup/8.0/installation/yum_repo.html
    
    rpm安装:
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm
    
    yum localinstall percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm   #需要EPEL源
    
    xtrabackup -version

    epel.repo

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
     
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=0
     
    [epel-source]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Source
    baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=0

    xtrabackup介绍

    XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心。阿里的 RDS MySQL 物理备份就是基于这个工具做的。由于是采取物理拷贝的方式来做的备份,所以速度非常快,几十G数据几分钟就搞定了,而它巧妙的利用了mysql 特性做到了在线热备份,不用像以前做物理备份那样必须关闭数据库才行,直接在线就能完成整库或者是部分库的全量备份和增量备份。新版本的xtrabackup改成了cmake安装,和以前有点不一样。

    版本说明:2.3.3之后不备份死锁,如果数据库是mysql 5.7之后的必须要装2.4.4才可以用,当然了, 会向下兼容的。

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:

    1. 备份过程快速、可靠;

    2. 备份过程不会打断正在执行的事务;

    3. 能够基于压缩等功能节约磁盘空间和流量;

    4. 自动实现备份检验;

    5. 还原速度快;

     

    xtrabackup选项
    
    选项
    
    --apply-log-only 
    prepare备份的时候只执行redo阶段,对增量备份非常重要
    --backup
    创建备份并且放入--target-dir目录中
    --close-files
    不保持文件打开状态,xtrabackup打开表空间的时候通常不会关闭文件句柄目的是为了正确处理DDL操作。然而,如果表空间数量非常巨大并且不适合任何限制,一旦文件不在被访问的时候这个选项可以关闭文件句柄.打开这个选项会产生不一致的备份。自己评估风险。。
    --compact
    创建一份没有辅助索引的紧凑备份
    --compress
    压缩所有输出数据,包括事务日志文件和元数据文件,通过指定的压缩算法,目前唯一支持的算法是quicklz.结果文件是qpress归档格式,每个xtrabackup创建的*.qp文件都可以通过qpress程序提取或者解压缩
    --compress-chunk-size=#
    压缩线程工作buffer的字节大小,默认是64K
    --compress-threads=#
    xtrabackup进行并行数据压缩时的worker线程的数量,该选项默认值是1,并行压缩('compress-threads')可以和并行文件拷贝('parallel')一起使用。例如:'--parallel=4 --compress --compress-threads=2'会创建4个IO线程读取数据并通过管道传送给2个压缩线程
    --create-ib-logfile
    这个选项目前还没有实现,目前创建Innodb事务日志,你还是需要prepare两次bakcup
    --datadir=DIRECTORY
    backup的源目录,mysql实例的数据目录。从my.cnf中读取,或者命令行指定
    --defaults-extra-file=[MY.CNF]
    在global files文件之后读取,必须在命令行的第一选项位置指定
    --defaults-file=[MY.CNF]
    唯一从给定文件读取默认选项,必须是个真实文件,必须在命令行第一个选项位置指定
    --defaults-group=GROUP-NAME
    从配置文件读取的组,innobakcupex多个实例部署时使用
    --export
    为导出的表创建必要的文件
    --extra-lsndir=DIRECTORY
    (for --bakcup):在指定目录创建一份xtrabakcup_checkpoints文件的额外的备份
    --incremental-basedir=DIRECTORY
    创建一份增量备份时,这个目录是增量别分的一份包含了full bakcup的Base数据集
    --incremental-dir=DIRECTORY
    prepare增量备份的时候,增量备份在DIRECTORY结合full backup创建出一份新的full backup
    --incremental-force-scan
    创建一份增量备份时,强制扫描所有增在备份中的数据页即使完全改变的page bitmap数据可用
    --incremetal-lsn=LSN
    创建增量备份的时候指定lsn。
    --innodb-log-arch-dir
    指定包含归档日志的目录。只能和xtrabackup --prepare选项一起使用
    --innodb-miscellaneous
    从My.cnf文件读取的一组Innodb选项。以便xtrabackup以同样的配置启动内置的Innodb。通常不需要显示指定
    --log-copy-interval=#
    这个选项指定了log拷贝线程check的时间间隔(默认1秒)
    --log-stream
    xtrabakcup不拷贝数据文件,将事务日志内容重定向到标准输出直到--suspend-at-end文件被删除。这个选项自动开启--suspend-at-end
    --no-defaults
    不从任何选项文件中读取任何默认选项,必须在命令行第一个选项
    --databases=#
    指定了需要备份的数据库和表
    --database-file=#
    指定包含数据库和表的文件格式为databasename1.tablename1为一个元素,一个元素一行
    --parallel=#
    指定备份时拷贝多个数据文件并发的进程数,默认值为1
    --prepare
    xtrabackup在一份通过--backup生成的备份执行还原操作,以便准备使用
    --print-default
    打印程序参数列表并退出,必须放在命令行首位
    --print-param
    使xtrabackup打印参数用来将数据文件拷贝到datadir并还原它们
    --rebuild_indexes
    在apply事务日志之后重建innodb辅助索引,只有和--prepare一起才生效
    --rebuild_threads=#
    在紧凑备份重建辅助索引的线程数,只有和--prepare和rebuild-index一起才生效
    --stats
    xtrabakcup扫描指定数据文件并打印出索引统计
    --stream=name
    将所有备份文件以指定格式流向标准输出,目前支持的格式有xbstream和tar
    --suspend-at-end
    使xtrabackup在--target-dir目录中生成xtrabakcup_suspended文件。在拷贝数据文件之后xtrabackup不是退出而是继续拷贝日志文件并且等待知道xtrabakcup_suspended文件被删除。这项可以使xtrabackup和其他程序协同工作
    --tables=name
    正则表达式匹配database.tablename。备份匹配的表
    --tables-file=name
    指定文件,一个表名一行
    --target-dir=DIRECTORY
    指定backup的目的地,如果目录不存在,xtrabakcup会创建。如果目录存在且为空则成功。不会覆盖已存在的文件
    --throttle=#
    指定每秒操作读写对的数量
    --tmpdir=name
    当使用--print-param指定的时候打印出正确的tmpdir参数,除此之外没有任何用。。
    --to-archived-lsn=LSN
    指定prepare备份时apply事务日志的LSN,只能和xtarbackup --prepare选项一起用
    --user-memory = #
    通过--prepare prepare备份时候分配多大内存,目的像innodb_buffer_pool_size。默认值100M如果你有足够大的内存。1-2G是推荐值,支持各种单位(1MB,1M,1GB,1G)
    --version
    打印xtrabackup版本并退出

    全量备份

    xtrabackup --user=用户名 --password=数据库密码 --databases=数据库名称   --backup  --target-dir=备份文件路径
    
    xtrabackup --defaults-file=/etc/my.cnf --user=root --password=x3npq4uo0ae8sb7i1dhm --backup --target-dir=/backup/base
    
    chown -R mysql:mysql /backup/base
    
    恢复备份:在同版本数据库中执行;恢复不用启动MySQL
    xtrabackup --user=root --password=数据库密码  --datadir=/usr/local/mysql8/data/  --copy-back --target-dir=/backup/base
    
    xtrabackup --prepare --target-dir=/backup/base
    
    xtrabackup --user=root --password=数据库密码  --datadir=/usr/local/mysql8/data/  --copy-back --target-dir=/backup/base
    
    chown -R mysql:mysql /usr/local/mysql8/data

    增量备份

    xtrabackup --defaults-file=/etc/my.cnf --user=root --password=x3npq4uo0ae8sb7i1dhm --backup --target-dir=/backup/base
    xtrabackup --defaults-file=/etc/my.cnf --user=root --password=x3npq4uo0ae8sb7i1dhm --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
  • 相关阅读:
    Vim
    一文搞定Samba云服务器配置(阿里云)CentOS8.3
    第四课 婴儿是如何思考的 思维的发展历程
    C++/VS基础篇
    Windows下Qt VS 打包程序 到他人电脑安装运行出现的问题
    第三课 斯金纳
    第二课基础 弗洛伊德
    C++中头文件和实现文件的关系
    字符串 数字 转换
    Ucore lab1实验报告
  • 原文地址:https://www.cnblogs.com/litzhiai/p/15252388.html
Copyright © 2020-2023  润新知