绕开SST通过IST方式添加NodePercona XtraDB Cluster

 Gcache存储了所有的  writeset ,因此说这个集合的大小直接决定了允许其他节点宕机后多长时间内可以进行ist 同步。

对于大库,高并发环境建议通过备份+binlog建立大的DB节点,减少生产库抖动。

计算Gcache尺寸

show global status like 'wsrep_received_bytes';

show global status like 'wsrep_replicated_bytes';

select sleep(60);

show global status like 'wsrep_received_bytes';

show global status like 'wsrep_replicated_bytes';

| wsrep_received_bytes | 83976571 |

| wsrep_replicated_bytes | 0     |

[...]

| wsrep_received_bytes | 90576957 |

| wsrep_replicated_bytes | 800   |

每分钟数据写入:

(second wsrep_received_bytes – first wsrep_received_bytes) + (second wsrep_replicated_bytes – first wsrep_replicated_bytes)

(90576957 – 83976571) + (800 – 0) = 6601186 bytes or 6 MB per minute.

每小时数据写入:

6MB * 60 minutes = 360 MB per hour of writesets received by the cluster.

默认是128M,适当调大gcache可以减少SST情况的发生,因为gcache是内存映射文件,因此会占用内存,建议设置16G

 

服务器

premysql24103 10.2.24.103  节点1 主写

premysql24102 10.2.24.102  节点2

premysql24101 10.2.24.101  新加入pxc节点

 

1.在premysql24103用innobackupex 加--galera-info做完整备份,并且拷贝到premysql24101

备份命令 innobackupex --user=root --password=111111 --defaults-file=/etc/my.cnf --socket=/data/mysql/mysql.sock --galera-info   --no-timestamp --stream=tar /data/mysql_bak 2>/data/mysql_bak/innobak.log | gzip   1>/data/mysql_bak/newpre_mysql_full_20151027.tar.gz

2.在premysql24101还原完整备份

并且查看新节点当前的事务号

命令/usr/local/mysql56cluster/bin/mysqld_safe  --wsrep-recover

 

3.在premysql24103和premysql24102查看每个节点的gcache中保存的最小事务号。

执行show global status like 'wsrep_local_cached_downto';

确定节点1节点2在gcache中的事务号包含新节点的事务号,也就是节点1节点2在gcache中的事务号小于新节点的事务号。

 

4.如果premysql24103的事物号小于新节点

则从premysql24103 数据目录拷贝grastate.dat 到 premysql24101数据目录

查看premysql24101服务器的xtrabackup_galera_info文件确定事物号

修改premysql24101 的grastate.dat 文件的seqno:   事务号,

并且chown mysql:mysql grastate.dat 。

启动premysql24101

/etc/init.d/mysqld_3306 start --wsrep_sst_donor=10.2.24.103

PXC增量恢复添加节点(IST)的更多相关文章

  1. pxc增量恢复

    解流 xbstream -x < fullbackup2.xbstream -C /data/fullbackup xbstream -x < fullbackup2.xbstream - ...

  2. (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog

    数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...

  3. Oracle DataGuard主库丢失归档日志后备库的RMAN增量恢复一例

    第一部分  问题描述和环境状态确认 ----1. 问题场景 Oracle DataGuard主库丢失archivelog,如何不重建备库完成同步? 在Oracle DataGuard主从同步过程中可能 ...

  4. JQuery 添加节点

    Mark一段自己写的添加节点的代码 function reply2(){ $( "<div class=sec1-div5>"+"<div class= ...

  5. jquery 添加节点的几种方法介绍

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. js实现在末尾添加节点

    在末尾添加节点: 1.获取ul标签 2.创建li标签 document.createElement("标签名称")方法 3.创建文本 document.createTextNode ...

  7. JavaScript案例二:在末尾添加节点

    简单实现通过JavaScript来增加HTML节点 <!DOCTYPE html> <html> <head> <title>JavaScript在末尾 ...

  8. 向html中添加节点

    简单: ①,js中: (function () { var box=document.querySelector("#box"); var con1=document.create ...

  9. 警惕rapidxml的陷阱:添加节点时,请保证变量的生命周期

    http://www.cnblogs.com/chutianyao/p/3246592.html 项目中要使用xml打包.解析协议,HQ指定了使用rapidxml--号称是最快的xml解析器. 功能很 ...

随机推荐

  1. Break关键字和Continue关键字

    1.Break关键字 在循环体内,只要代码遇到break,程序立马结束当前循环. 当前循环指的是break语句所在的循环体.(直接跳到大括号外) // 例1: 1到10,第一是数字是2的倍数,控制台输 ...

  2. 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP)

    目录 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP) 一.涉及知识点 1.无数字字母shell 2.利用.htaccess上传文件 3.绕过open_basedir/disable ...

  3. gulp&sass安装配置

    首先需要nodejs和npm 然后安装Gulp及其Sass预处理器 在主题目录的根目录中,创建一个空的package.json并复制粘贴以下代码: { "author": &quo ...

  4. Spring的异步方法

    先把longTimeMethod 封装到Spring的异步方法中,这个异步方法的返回值是Future的实例.这个方法一定要写在Spring管理的类中,注意注解@Async. @Service publ ...

  5. openstack重设虚拟机实例密码

    目录结构: 引出 采用 nova get-password 方式 采用 libvirt-set-admin-password 采用 nova rebuild instance 的方式 采用 cloud ...

  6. Xamarin图表开发基础教程(7)OxyPlot框架

    Xamarin图表开发基础教程(7)OxyPlot框架 Xamarin.Forms中使用OxyPlot框架 在Xamarin. Forms平台上实现图表显示需要完成以下的步骤: 1.添加OxyPlot ...

  7. AnnotatedElementUtils.findMergedAnnotation作用

    // 在element上查询annotationType类型注解 // 将查询出的多个annotationType类型注解属性合并到查询的第一个注解中 // # 多个相同注解合并 org.spring ...

  8. JS高级:面向对象解析

    1 实例属性/方法 都是绑定在使用构造函数创建出来的对象p上; 最终使用的时候也是使用对象p来进行访问; function Person(name, age, doFunc) { this.name ...

  9. 转 perl DBI 总结

    https://www.cnblogs.com/homezzm/archive/2011/07/22/2113618.html ##查看已经安装的包 #!/usr/bin/perluse strict ...

  10. MyBatis插入记录时返回主键id的方法

    有时候插入记录之后需要使用到插入记录的主键,通常是再查询一次来获取主键,但是MyBatis插入记录时可以设置成返回主键id,简化操作,方法大致有两种. 对应实体类: public class User ...