• innobackupex的使用


    优点:

    不暂停服务器创建Innodb热备份

    为mysql做增量的备份

    在mysql服务器之间做在线表迁移

    使创建mysql replication更加容易

    备份mysql但不增加服务器的负载

    安装:xtrabackup套件

    配置官方给的yum源    yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

    安装:yum install percona-xtrabackup-21.x86_64 -y

    实际上,在备份的时候innobackupex会调用xtrabackup来备份innodb表,并复制所有的表定义,其他引擎的表(MyISAM,MERGE,CSV,ARCHIVE)。由于xtrabackup使用上没有innobackupex使用便捷,而且不支持其他的除innodb之外的存储引擎的备份

    注意

    不管是备份和恢复,innobackex都会不能指定data目录的位置,所以只能写在/etc/my.cnf配置文件中datadir=/usr/local/mysql/data. datadir必须是为空的,innobackupex --copy-back不会覆盖已存在的文件,还要注意,还原时需要先关闭服务,如果服务是启动的,那么就不能还原到datadir.

    一些常用选项:

    --no-timestamp,指定了这个选项备份会直接备份在BACKUP-DIR,不再创建时间戳文件夹

    全量备份

    备份数据innobackupex --user=root --password=redhat /backup/ innobackupex --use-memory=256m --apply-log /backup/2015-12-16_23-22-20/

    ##--apply-log创建完备份之后数据被没有马上可以被还原,需要回滚未提交事务,前滚提交事务,之后数据就被写到了备份的数据文件(innodb文件)中,并重建日志文件。这一步隐式调用了2次xtrabackup –prepare。让数据库文件保持一致性

    --user-memory:指定预备阶段可使用的内存,内存多则速度快,默认为10MB

    恢复 innobackupex --copy-back /backup/2015-12-16_23-22-20/

    增量备份:

    依赖于innodb页上面的LSN(log sequence number),每次对数据库的修改都会导致LSN自增。增量备份会复制指定LSN之后的所有数据页.通过查看备份目录中的xtrabackup_checkpoints 可以看出一二

    backup_type = incremental

    from_lsn = 1602492

    to_lsn = 1602829

    last_lsn = 1602829

    compact = 0

    另外,此工具只会影响xtradb或者innodb存储引擎的表,其他引擎的表在增量备份的时候只会复制整个文件,不会差异。需要注意的是,应用增量备份的时候只能按照备份的顺序来应用。如果应用顺序错误,那么备份就不可用。如果无法确定顺序,可以使用xtrabackup-checkpoints来确定顺序。

    先全量:innobackupex --user=root --password=redhat /backup/mon/

    第一次增量,需要注意的是全量备份生成的文件默认是以时间为目录的,所以在指定basedir的时候要指定正确

    innobackupex --incremental /backup/tue/ --incremental-basedir=/backup/mon/2015-12-16_23-39-44/ --user=root --password=redhat

    第二次增量:第二次是在第一次的基础上完成的备份

    innobackupex --incremental /backup/wed/ --incremental-basedir=/backup/tue/2015-12-16_23-44-19/ --user=root --password=redhat

    恢复增量备份

    step1:准备原始备份

    innobackupex --apply-log --redo-only /backup/mon/2015-12-16_23-39-44/ --use-memory=256m --user=root --password=redhat

    step2:合并增量备份到原始备份

    第一次增量叠加到原始备份

    innobackupex --apply-log --redo-only /backup/mon/2015-12-16_23-39-44/ --incremental-dir=/backup/tue/2015-12-16_23-44-19/ --use-memory=256m --user=root --password=redhat

    第二次增量叠加到原始备份

    innobackupex --apply-log --redo-only /backup/mon/2015-12-16_23-39-44/ --incremental-dir=/backup/wed/2015-12-16_23-45-31/ --use-memory=256m --user=root --password=redhat

    step3:生成最终备份

    innobackupex --apply-log /backup/mon/2015-12-16_23-39-44/ --user=root --password=redhat --use-memory=256m

    step4: 恢复最终备份,修改文件、目录的权限属主

    chown mysql. -R data/

    chown mysql. -R ib_logfile*

    #--redo-only只做已提交事务,不回滚未提交事务除了最后一个不用加之外,其他的增量应用都要加,最后一个应用的时候可以直接进入回滚未提交事务阶段。如果加了也没事儿,服务启动的时候会进入recovery过程,来回滚。

    参考:http://www.cnblogs.com/Amaranthus/archive/2014/08/19/3922570.html

  • 相关阅读:
    HTML5的进步与优势
    jquery项目中一些比较常用的简单方法
    MVC架构下将查询到的数据以表格形式展现出来
    MVC架构下的导出为excel的代码
    MVC中ViewData中数据转化成json形式的变量的方法
    jQuery实现CheckBox全选,全不选,反选代码
    C#导出到EXCEL
    jQuery常见操作实现和常用函数方法总结
    jQuery中运用正则表达式验证输入是否有特殊字符
    DataTime+当前时间转换
  • 原文地址:https://www.cnblogs.com/wxl-dede/p/5054647.html
Copyright © 2020-2023  润新知