美文网首页Linux 进攻之路
MySQL 热备份之xtrabackup

MySQL 热备份之xtrabackup

作者: AllenWGZ | 来源:发表于2021-12-31 15:23 被阅读0次
    前言:

    对于公司企业来说,数据丢失极有可能造成毁灭性的伤害,所以数据备份保存并且能够随时能进行恢复使用,对企业来说非常非常重要!

    问题一:我们为什么需要备份 ?

    因为服务器运行过程中,有可能出现硬件故障、遭受恶意攻击、数据库程序奔溃、自然灾害、人工操作失误造成误删数据,在这几项中最容易的是人工操作失误进行删除数据

    问题二:我们该采用哪种备份方式 ?

    一般情况有物理备份、逻辑备份等,并且相对备份数据量还可以分为完全备份和部分备份。下面简单解释一下

    • 全量备份:备份整个数据库的所有数据
    • 增量备份:仅备份上一次完全备份或增量备份以来变量的那部数据
    • 差异备份:仅备份自上一次完全备份以来变量的那部数据;(浪费空间,还原效果比增量快)
    • 物理备份:直接复制数据文件进行的备份
    • 逻辑备份(mysqldump):通过mysql,从数据库导出数据另存在一个或多个文件中通过一个大的SELECT 语句,转成一个 INSERT 语句 进行备份
    • 热备份:在没用停止数据库和业务的情况进行备份,并且能够正确完整备份出当时的数据
    • 温备份:在数据库进行锁表情况,只能进行读情况下进行备份,影响写操作
    • 冷备份:在业务停止和数据库停止情况下,读写均不可进行情况下进行备份

    问题三:备份时候考虑问题 ?

    一般情况企业的业务是无间断地提供服务,就是你进行备份时候也不能进行暂停业务让你进行备份,并且备份时候服务器的负载、IO问题,进行成功备份以后假如需要进行恢复数据,多快能够进行快速恢复。

    我们选用哪种备份 ?

    这次我们讨论的是如何进行热备份,一般在生产环境之中,使用的是 全量备份+增量备份+binlog 形式,我们选择使用的工具是xtrabackup,是percona公司开发的mysql开源热备份工具

    下面是如何在CentOS 7 下进行备份的具体步骤:

    • 首先进行安装
      1.可以在 percona 公司网站进行下载,按照自己安装方式选择下载rpm包或者源码包进行编译安装
      安装前先进行安装以下这些依赖包
    yum install perl-DBI  perl-DBD-MySQL  perl-Time-HiRes perl-IO-Socket-SSL installperl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
    
    image.png

    然后进行安装xtrabackup

    yum install  percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm
    
    image.png
    • 创建一个备份用户
      使用一个具有创建和授权的用户登陆mysql,进行创建用户并且授一定权限:
        GRANT RELOAD,LOCKTABLES,REPLOCATION CLIENT,CREATE TABLESPACE,SUPER ON *.* TO ‘USER_NAME’@’HOSTNAME/IP’ IDENTIFIED BY ‘Your_PASSWORD’ ;
    

    备注:

    USER_NAME 换成你要创建用户的用户名
    HOSTNAME/IP 换成授权登陆的主机名或ip
    YOUR_PASSWORD 换成你的密码
    RELOAD 和 LOCKTABLES 权限为了执行 FLUSHTABLES WITH READ LOCK
    REPLICATION CLIENT 为了获取binary log位置
    CREATE TABLESPACE 权限为了导入表,用户表级别的恢复
    SUPER权限在slave环境下备份用来启动和关闭slave线程

    • 说明xtrabackup工具语法
      在说明xtrabackup之前先来认识一下 innobackupex 这个命令,innobackupex 在是xtrabackup工具的其中一个命令,在xtrabackup 2.3 版本之前 innobackupex 是一个perl 脚本,用来兼容备份 innodb 、myisam、xtradb引擎的数据库。现在新版本的 innobackupex 已经不再是一个perl脚本,官方已经整合封装在C里面
      语法格式示例:
    innobackupex [--defaults-file=/etc/my.cnf] --user=USERNAME --password=PASSWORD --port=3306 /data/backup/full --slave-info --safe-slave-backup --parallel=4 --safe-slave-backup-timeout=7200  --rsync 
    

    --rsync 这个参数一般用作分布式数据库集群时候使用
    --slave-info 会记录binlog的位置和文件名字,可以用作主从复制时候

    我们使用帮助查看innobackupex的帮助文档:


    image.png

    进行完整备份例子:

    innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --slave-info --host=192.168.3.199 --user=china --password=ChinaPassw0rd  /data/data_backup/
    

    进行增量备份例子:
    要我绑定微信,不想写,改天有时间再写

    • 进行恢复

    参考链接:http://blog.csdn.net/u010066807/article/details/50679276

    相关文章

      网友评论

        本文标题:MySQL 热备份之xtrabackup

        本文链接:https://www.haomeiwen.com/subject/jqerbxtx.html