xtrabackup 对pxc节点进行备份恢复
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节点进行备份恢复的更多相关文章
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
- Kubernetes Master节点灾备恢复操作指南---升级版
本文档简述了Kubernetes主节点灾备恢复的相关步骤,供在发生k8s master崩溃时操作. 就算是在k8s里部署了etcd群集, 主节点控制组件的高可用节点,灾备恢复也是必须要实现的操作,才能 ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- 从xtrabackup备份恢复单表【转】
目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...
- xtrabackup 备份恢复
XtraBackup物理备份 Percona XtraBackup是世界上唯一的开源,免费的MySQL热备份软件,为InnoDB和XtraDB 数据库执行非阻塞备份.使用Percona XtraBac ...
- MySQL | 使用Xtrabackup进行备份和备份恢复
备份 进行备份前需要先创建备份用户,直接使用 root 用户进行备份也行,但是这样不太规范. create user backup@'localhost' identified by '123456' ...
- (转)解锁MySQL备份恢复的4种正确姿势
本文根据DBAplus社群第104期线上分享整理而成. 原文:http://dbaplus.cn/news-11-1267-1.html 讲师介绍 冯帅 点融网高级DBA 获有Oracle OCM ...
- 基于MySQL MEB的备份恢复
MEB(MySQL Enterprise Backup)是MySQL商业版中提供的备份工具,属于物理备份. 同XtraBackup一样,mysqlbackup的使用过程同样包含如下三个步骤: 备份(- ...
- 使用 xtrabackup 进行MySQL数据库物理备份
0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...
随机推荐
- JDBC 接口学习
说明:文章所有内容皆选自实验楼教程[JDBC 入门教程],想要学习更多JDBC,可以点击教程进行学习~ JDBC 简介 JDBC 的全称是 Java Database Connectivity,叫做 ...
- C语言中各个数据类型的取值范围
因为CPU的差异,各系统中的数据类型所占的字节数(bytes)不同,二进制位数(bit)也不同.那么怎样才能知道自己系统的数据类型的字节数,位数呢? 授之以鱼不如授之以渔,大家可以自己从电脑里获取这些 ...
- jenkins 实现多用户同时触发任务 + 修改job的config.xml 不重启服务生效
(后期添加: 这篇博客是在刚研究并发构建时写的,所以方法比较老套,采用的时流水线(pipeline)的方式,实现时通过如果job的用户配置来创建多个新的执行任务的job,并且将执行日志回收到入口job ...
- [LeetCode] 1. Two Sum_Easy
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- python 参数解析ArgumentParser
#!/usr/bin/env python #coding:utf-8 from argparse import ArgumentParser #--------------------------- ...
- 219. 存在重复元素 II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: nums = ...
- struts2.0自定义类型转换
在Struts2.0框架中内置了类型转换器,可以很方便的实现在八大数据类型.Date类型之间的自动转换:此外也可以根据自己的需求自定义数据转换类.如下: 首先看一下项目工程中的目录 1.在新建的web ...
- Android -- GreenDao3.2的简单使用
1,最近看了一篇文章关于GreenDao的文章 ,感觉使用这个操作数据库还是很好用的,帮我们省了不少的查询代码,今天就和大家一起来简单的使用一下吧.首先这是官网地址:https://github.co ...
- Unity shader学习之渐变纹理
渐变纹理,及使用纹理来存储漫反射光照的结果,这种技术在游戏<军团要塞2>中流行起来,它也是由Valve公司(提出半兰伯特光照技术的公司)提出来的,他们使用这种技术来渲染游戏中具有插画风格的 ...
- MVC中的Ajax与增删改查(一)
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...