用xtrabackup备份mariadb-galera-cluster

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

由于mysqldump是逻辑备份,且备份效率低下,当有大量数据时无法快速进行备份

此时用xtrabackup是一种极好的备份方案

1.完整备份及完整还原

  备份:--backup

   innobackupex --defaults-file=/etc/my.cnf.d/server.cnf --host=127.0.0.1 --user=liuwei --password=123456 --backup          /tmp/backup/

  选项说明:

    --defaults-file:指明服务器的配置文件,此参数必须作为innobackupex的第一个参数,否则报错

    --host:指明主机

    --user:指明备份的用户名

    --password:指明备份用户名的密码

    --backup:指明为备份,此参数可以忽略

    /tmp/backup:备份的目录

    注:xtrabackup是物理备份,经测试不需要指定用户名密码即可使用

   应用:--apply-log

   innobackupex --apply-log 2016-07-04_17-18-53/

   注:在还原之前需要将收集到的重做日志应用到备份数据文件

   还原:--copy-back

   innobackupex --copy-back 2016-07-04_15-26-49/

   注意:在还原之前需要做的操作

       1.关闭数据库

       2.删除数据目录下的所有文件

       3.然后进行还原

       4.还原之后需要修改数据目录的权限,因为还原后的默认属主为root,需要改为mysql

       5.重启mysql

2.一次完整备份一次增量备份实现全部数据还原

   一次完整备份:

   innobackupex --defaults-file=/etc/my.cnf.d/server.cnf --host=127.0.0.1 --backup /tmp/backup/

   一次增量备份:

   innobackupex --host=127.0.0.1 --incremental --incremental-basedir=/tmp/backup/2016-07-05_09-31-40/ /tmp/backup/

     注:增量备份基于前一次的备份,不论前一次是增量还是完整备份

   重做日志:--apply-log,--redo-only(redo时最好为绝对路径,在次吃过亏)

    前提1:最后一次增量备份之前的--apply-log过程中,必须使用--redo-only选项

    前提2:所有的增量恢复,都必须基于最后一次的完整备份

    前提3:所有的增量恢复完成之后,必须基于完整备份再做一次--apply-log

     a.innobackupex --apply-log --redo-only /tmp/backup/2016-07-05_09-31-40

     b.innobackupex --apply-log /tmp/backup/2016-07-05_09-31-40 --incremental-dir=/tmp/backup/2016-07-05_10-35-02

     c.innobackupex --apply-log /tmp/backup/2016-07-05_09-31-40

   完整恢复:

   innobackupex --copy-back /tmp/backup/2016-07-05_09-31-40

3.一次完整备份多次增量备份实现全部数据还原

   一次完整备份:

   innobackupex --defaults-file=/etc/my.cnf.d/server.cnf --host=127.0.0.1 --backup /tmp/backup/

   多次增量备份:

   a.innobackupex --host=127.0.0.1 --incremental /tmp/backup/ --incremental-basedir=/tmp/backup/2016-07-05_11-43-08/

   b.innobackupex --host=127.0.0.1 --incremental /tmp/backup/ --incremental-basedir=/tmp/backup/2016-07-05_11-44-43/

   c.innobackupex --host=127.0.0.1 --incremental /tmp/backup/ --incremental-basedir=/tmp/backup/2016-07-05_11-46-50/

   重做日志:

   a.innobackupex --apply-log --redo-log 2016-07-05_11-43-08/

   b.innobackupex --apply-log --redo-only /tmp/backup/2016-07-05_11-43-08/ --incremental-dir=/tmp/backup/2016-07-05_11-44-43/

   c.innobackupex --apply-log --redo-only /tmp/backup/2016-07-05_11-43-08/ --incremental-dir=/tmp/backup/2016-07-05_11-46-50

   d.innobackupex --apply-log /tmp/backup/2016-07-05_11-43-08/ --incremental-dir=/tmp/backup/2016-07-05_11-47-27/

   e.innobackupex --apply-log /tmp/backup/2016-07-05_11-43-08/

   完整恢复:

   innobackupex --copy-back /tmp/backup/2016-07-05_11-43-08/

4.单表备份及恢复

   备份单表:

   innobackupex --host=127.0.0.1 --databases='p2p_tongjiang.rb_user' /tmp/backup/

   准备单表:

   innobackupex --apply-log --export /tmp/backup/2016-07-05_14-09-52/

   注:准备完成后,会在备份目录下生成.cfg、.ibd文件,属主为root,用到时需要改为mysql

   恢复单表:需要先在当前服务器上创建一个跟原表表结构一致的表,而后才能实现将表导入

   a.废弃原来的表空间

     mariadb>alter table p2p_tongjiang.rb_user DISCARD TABLESPACE;

   b.复制生成的*.cfg,*.ibd文件到数据目录下的库中

     #cp rb_user.cfg rb_user.ibd /data/mysql/p2p_tongjiang/

   c.把整个数据目录的属主改为mysql,因为刚刚复制进去的文件属主为root

     #chown -R mysql.mysql /data/mysql/

   d.导入生成的表空间(注:如果c步骤没有修改权限,则在导入表空间时会报表空间找不到的错误)

     mariadb>alter table p2p_tongjiang.rb_user IMPORT TABLESPACE;

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1882359如需转载请自行联系原作者


weilovepan520

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
关系型数据库
Mariadb的半同步复制
Mariadb的半同步复制
63 1
|
监控 关系型数据库 MySQL
Mysql-MHA集群(下)
Mysql-MHA集群(下)
127 0
|
关系型数据库 MySQL 网络安全
Mysql-MHA集群(上)
Mysql-MHA集群
162 1
Mysql-MHA集群(上)
|
关系型数据库 网络安全 数据库
|
存储 域名解析 关系型数据库
MariaDB 半同步复制
本文主要为大家详解讲解 MariaDB 的半同步复制功能,包括插接安装、卸载,以及配置参数等。
739 0
MariaDB 半同步复制
|
关系型数据库 MySQL Linux
xtrabackup热备mysql
xtrabackup备份mysql,增量备份恢复和还原。
1950 0
|
存储 关系型数据库 MySQL
|
关系型数据库 MySQL 测试技术
|
关系型数据库 MySQL 数据库