xtrabackup 对pxc节点进行备份恢复

全量备份一个节点的数据,当节点挂掉时,使用备份恢复到最近状态,再启动节点加入集群。

备份

xtrabackup 命令小解释:

  • --defaults-file=/etc/my.cnf : 指定pxc配置文件,默认/etc/my.cnf,手动指定该参数需要置于第一位,此配置文件里必须指定datadir

  • --user=root : 用户

  • --password=*** : 密码

  • --socket=/tmp/mysql-pxc.sock : sock 文件

  • --target-dir=/data/backup/ : 指定备份路径,不存在会自动创建

  • --backup : 进行备份时使用的参数

  • --stream=tar : 指定压缩模式,tar、xbstream

  • --prepare : 执行数据文件拷贝前的动作,同innobackup 的 --apply-log。一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据 文件仍处理不一致状态。该参数的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。

  • --copy-back : 拷贝数据文件到datadir中,你开心用mv、cp、rsync都行

  • --galera-info : 记录集群的uuid和最后提交的事物seqno

实际环境中,可能很多参数都不需要。

本地备份:

/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --user=root --password=**** --socket=/tmp/mysql-pxc.sock --backup  --galera-info --target-dir=/data/backup/all_db_backup

本地压缩备份:

/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --user=root --password=**** --socket=/tmp/mysql-pxc.sock --backup  --galera-info  --target-dir=/data/backup/ --stream=tar > all_db_backup.tar.gz

远程备份:

/usr/bin/xtrabackup  --defaults-file=/etc/my.cnf --user=root --password=**** --socket=/tmp/mysql-pxc.sock --backup  --galera-info  --target-dir=/data/backup/ --stream=tar | ssh -p 22 -o StrictHostKeyChecking=no 172.16.11.216 "cat -> /data/backup/all_db_backup.tar.gz"

# 或者

/usr/bin/xtrabackup  --defaults-file=/etc/my.cnf --user=root --password=`cat /data/save/mysql_root` --socket=/tmp/mysql-pxc.sock --backup  --galera-info  --target-dir=/data/backup/ --stream=xbstream | ssh -p 22 -o StrictHostKeyChecking=no 172.16.11.216 "/usr/bin/xbstream -x -C  /data/backup/"

恢复

我们假设节点已经down了,那就直接把节点datadir清空吧。

rm -rf /data/database/mysql/*

# 如果是压缩备份,解压前加个 -i 参数
tar -ixf all_db_backup.tar.gz -C /data/backup/all_db_backup # 先prepare
/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup/all_db_backup # 再copyback
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup/all_db_backup

需要借助xtrabackup_galera_info 中的uuid和seqno来实现以IST的方式加入集群:

#配置grastate.dat
cat /data/database/pxc3306/xtrabackup_galera_info
bf26341f-43cb-11e8-a863-62c0eb4d9e79:728[ vim /data/database/pxc3306/grastate.dat
LERA saved state
# GALERA saved state
version: 2.1
uuid: bf26341f-43cb-11e8-a863-62c0eb4d9e79
seqno: 728
safe_to_bootstrap: 0 # 授权
chown mysql:mysql -R /data/database/mysql # 查看其它节点中,gcacche缓存的最小seqno
(root@localhost) [(none)]> show status like 'wsrep_local_cached_downto';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| wsrep_local_cached_downto | 693 |
+---------------------------+-------+
1 row in set (0.01 sec)

其它节点的gcache缓存的最小seqno为693,而宕机节点的为728,可以直接启动以ist的方式加入集群:

/etc/init.d/mysql  start

这样就可以使用备份数据恢复节点,启动后集群会选举一个节点作为Donor,以IST的方式同步新增的数据。

xtrabackup 对pxc节点进行备份恢复的更多相关文章

  1. mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)

    一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...

  2. Kubernetes Master节点灾备恢复操作指南---升级版

    本文档简述了Kubernetes主节点灾备恢复的相关步骤,供在发生k8s master崩溃时操作. 就算是在k8s里部署了etcd群集, 主节点控制组件的高可用节点,灾备恢复也是必须要实现的操作,才能 ...

  3. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  4. 从xtrabackup备份恢复单表【转】

    目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...

  5. xtrabackup 备份恢复

    XtraBackup物理备份 Percona XtraBackup是世界上唯一的开源,免费的MySQL热备份软件,为InnoDB和XtraDB 数据库执行非阻塞备份.使用Percona XtraBac ...

  6. MySQL | 使用Xtrabackup进行备份和备份恢复

    备份 进行备份前需要先创建备份用户,直接使用 root 用户进行备份也行,但是这样不太规范. create user backup@'localhost' identified by '123456' ...

  7. (转)解锁MySQL备份恢复的4种正确姿势

    本文根据DBAplus社群第104期线上分享整理而成. 原文:http://dbaplus.cn/news-11-1267-1.html 讲师介绍   冯帅 点融网高级DBA 获有Oracle OCM ...

  8. 基于MySQL MEB的备份恢复

    MEB(MySQL Enterprise Backup)是MySQL商业版中提供的备份工具,属于物理备份. 同XtraBackup一样,mysqlbackup的使用过程同样包含如下三个步骤: 备份(- ...

  9. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

随机推荐

  1. Java 基础 面向对象之构造方法和关键字

    构造方法 构造方法简介 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的 ...

  2. 【UML】-NO.40.UML.1.UML.1.001-【UML】- uml

    1.0.0 Summary Tittle:[UML]-NO.40.UML.1.UML.1.001-[UML]- uml Style:DesignPattern Series:DesignPattern ...

  3. 【Java】-NO.16.EBook.4.Java.1.012-【疯狂Java讲义第3版 李刚】- Swing

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.011-[疯狂Java讲义第3版 李刚]-  Swing Style:EBook Series:Jav ...

  4. windows系统上利用putty通过SSH连接亚马逊AWS服务器

    1. 找到在购买亚马逊的AWS服务器时保存的密钥文件(假设为abc.pem). 2.打开PuTTYgen,如下图,点击图中1处的“load”,找到abc.pem文件所在的位置,并选择abc.pem,确 ...

  5. python No tests were found问题解决方法

    由于刚刚开始用python去写测试接口框架,在写的过程中遇到No tests were found问题 原因:python中unittest框架是以Test开头的方法,所以定义方法或类不能以Test开 ...

  6. SwingBench 字符模式压测最佳实践

    之前写过<使用SwingBench 对Oracle RAC DB性能 压力测试>,使用的是最基础直观的图形模式,已经可以满足大多数需求. 但是在有些场景下,图形模式可能本身消耗资源过大,尤 ...

  7. PyQT5速成教程-4 Qt Designer实战[上]

    本文由 沈庆阳 所有,转载请与作者取得联系! 前言 在前面几节的学习中,我们对PyQt的基本使用.Qt Designer与Python编码的工作流程有了基本的学习.同时也掌握了Qt Designer中 ...

  8. Hibernate框架第一天

    **框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间 ...

  9. Spring的quartz定时器重复执行二次的问题解决

    Spring的quartz定时器同一时刻重复执行二次的问题解决 最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的ha ...

  10. djago 定义后台地址

    在app 中urls.py 可替换原始后台登陆地址  /admin   为自定义地址