• Xtrabackup实现数据的备份与恢复-mysql


    Xtrabackup介绍

      Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。

    备份原理

    备份开始时首先会开启一个后台检测进程,实时检测mysq redo的变化,一旦发现有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中,之后复制innodb的数据文件一系统表空间文件ibdatax,复制结束后,将执行flush tables with readlock,然后复制.frm MYI MYD等文件,最后执行unlock tables,最终停止xtrabackup_log

    xtrabackup增量备份的原理是:

    1)、首先完成一个完全备份,并记录下此时检查点LSN;

    2)、然后增量备份时,比较表空间中每个页的LSN是否大于上次备份的LSN,若是则备份该页并记录当前检查点的LSN。

    Xtrabackup安装

     

    l  rpm 安装(下载:https://pan.baidu.com/s/1sl4jByP

    这种安装方法比较简单,只需下载相应的rpm安装包安装即可(注意根据提示安装相应的依赖包)。其中需要的 libev.so.4() 安装包:

    https://pan.baidu.com/s/1i4EZfwThttps://pan.baidu.com/s/1i4EZfwT

     

     

     

    innobackupex参数介绍:

    --defaults-file=/etc/my.cnf:指定my.cnf配置文件位置

    --user=root:指定链接数据库的用户名

    --apply-log:对xtrabackup的—prepare参数的封装

    --copy-back:做数据恢复时把备份文件拷贝到mysql服务器的datadir目录下

    --remote-host:通过ssh将备份数据存储到远程的服务器上

    --stream:通过指定的数据格式将备份的数据输出到标准输出

    --tmpdir:当指定了—remote-host或者是—stream参数后,事务日志需要临时存储到本地磁盘,此参数默认使用了mysql服务器的配置

    --use-memory:此参数结合ibbackup使用,类似于xrtabackup的参数use-memory参数

    --throttle=IOS:同xtrabackup的参数throttle

    --sleep:是给ibbackup使用的,指定每备份1M数据,进程停止考呗多少秒,也是为了减少对正常业务的影响,具体查看ibbackup的手册

    -compass:对备份的数据进行压缩,仅仅支持ibbackup,xtrabackup还没有实现

    --include=REGEXP对xtrabackup参数的封装,也支持ibbackup;

    --database=LIST :列出需要备份的databases,如果没有制定该参数,则所有包含Myisam和innoDB表的database 都会被备份

    --password="*****":访问mysql的用户口令,当mysql的root口令为空时省略—password参数。

    PORT=3306 :指定mysql监听的端口

    --slave-info:slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。

    /mysql_backup:备份位置

    --socket=SOCKET :mysql服务器的socket文件的位置

    2>/mysql_backup/ innobackupex.log:记录备份时的输出

    --databases=数据库名:使用这个参数,针对某个数据库进行备份,如果不加这个参数默认就是全部的库备份

    备份阶段

    1:全量备份

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=root /opt/

    2:第一次增量备份

    mysql> create database test123;

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --incremental-basedir=/opt/2019-01-15_20-32-38/ --incremental  /opt/incremental
    image 
     
    恢复阶段:

    1.第一次还原全量恢复

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38

    2.第二次还原增量恢复

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38 --incremental-dir=/opt/incremental/2019-01-15_20-40-36/

    3.复制所有的备份到他们原来的位置

    innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /opt/2019-01-15_20-32-38/

    授权新data目录的权限
    chown -R mysql.mysql data

    image

  • 相关阅读:
    jenkins升级
    linux中查看端口号
    jenkins--master/slave模式---master是容器版---slave是非容器版
    jenkins编译时文件存放的位置
    pipline中替换tag变量
    postman(十):配置jenkins自动发送邮件(邮件包含测试报告)
    postman(九):postman接口测试脚本集成到jenkins
    postman(八):使用newman来执行postman脚本
    postman(七):运行集合,看所有请求执行结果
    postman(六):详解在Pre-request Script中如何执行请求
  • 原文地址:https://www.cnblogs.com/zywu-king/p/10271305.html
Copyright © 2020-2023  润新知