负责galera上执行删除语句

delete from t1 where group_id= and group_id=;

执行后,群集破坏,除了主节点存活,其他俩个节点全都停掉。

查看galera的限制,没有主键的表,不支持DELETE操作。但是查看删除数据的表是有主键的,只不过删除不是根据主键删除,不知道是不是这个原因

galera官方的限制:

  • 当前的复制仅仅在 InnoDB 存储引擎 下才能工作。任何其他的引擎对数据表的写操作,都不会被复制( 包括系统表mysql.* )。但 CREATE USER 等实际上是修改了 mysql.* 的表的DDL语句是会被复制的。同时 galera 官方实验性的支持 MyISAM 引擎,具体请查看系统变量wsrep_replicate_myisam
  • 不支持如下的锁定:LOCK TABLES , FLUSH TABLES {table lists} WITH READ LOCK, GET_LOCK(),RELEASE_LOCK(),...。适当的使用事务可以克服这些限制。全局锁定操作是支持的,如FLUSH TALBES WITH READ LOCK
  • 所有的表都必须有一个主键(多列主键是支持的)。没有主键的表,不支持DELETE操作。同时,在没有主键的表中,内容行出现的顺序在集群的不同的节点中可能不同。
  • query log不能被记录到一张表中。如果你开启了查询日志,你需将日志导入到文件中:log_output=FILE
  • 不支持 XA transactions
  • 事物大小。galera没有明确限制事物大小。一个写入操作是在一个单独的内存缓存块中进行的,所以一个大的事务操作(如LOAD DATA)将会对节点的性能产生很大的不利影响。为了避免这个,系统变量 wsrep_max_ws_rowswsrep_max_ws_size 默认限制了事务的行数为12.8万,事务的大小为1G。如果有必要,可以增大这些配置。将来版本将支持事务碎片。

其他限制(排名不分先后):

  • 如果你使用mysqldump做状态迁移,如果过程中出现任何错误(如:您没有数据库账号,或者账号权限不对),都将在服务器的错误日志中出现SQL SYNTAX错误提示。不要被这个错误提示欺骗了,仅仅是一种奇葩的日志记录方式。伪语句中实际上包含了错误语句。
  • Do not use transactions of any essential size. 插入10万行,服务器将需要额外的200-300Mb。在一些不幸的场景中,50万行需要1.5Gb,100万行需要3.5Gb。
  • 当包含DDL时锁定是不严谨松散的。例如,如果你在DML操作时,并行的开始一个DDL语句,在通常的MySQL设置中,MySQL将等待元数据的锁定,但是在galera中却会不顾一切的执行。只要你配置的是集群模式,就算是只有一个节点,也会执行。这种行为可能引起一些副作用,导致的结果还没有进行深入研究。尽量避免这样的并行操作。
  • 不要依赖自增值。galera使用的机制是基于生成一个唯一的不冲突的序号来自增,所以每一次自增序号都有空白。见:http://codership.blogspot.com/2009/02/managing-auto-increments-with-multi.html
  • 一个命令可能失败ER_UNKNOWN_COM_ERROR产生"WSREP has not yet prepared node for application use"'Unknown command' in older versions 的错误信息。当集群进入脑裂并且节点是少数部分时。例如,当网络出现故障时,当节点暂时的和其他节点失去联系。同样也可能出现在状态变更的时候。节点采取这个措施来防止数据不一致。这通常是一个临时状态,可以通过检查wsrep_ready的值来监测。在这种状态下,运行执行showset命令。
  • 当发生短暂的断开后,集群健康的部分还是可以被访问的,如果他的状态被修改了,将开始重新同步。同时,集群中失败的部分将断开所有的客户端连接。这对客户端来说特别意外,尤其是在客户端是空闲的状态,并不知道到底发生了什么错误。需记住一点,在连接到这个孤立节点的连接恢复,如果有一个数据流在这个节点上,并且将要花很长时间才能同步,这时,健康的节点将会说集群准备好了而且是同步的,然后刚加入的节点会说她仅仅只是加入(还没同步)。这个连接会得到unknown command的回复。最终都会同步的。
  • 在启动前仔细检查binlog_format的配置是否为ROW,这个值可以在运行时改变。所以不要在运行时改变binlog_format的值。这不仅仅造成复制失败,而会让所有其他的节点崩溃。
  • 如果使用rsync来做状态迁移,当一个节点在状态迁移前崩溃时,rsync进程可能永远挂起了,占用着端口而且阻止节点重启。这个问题表现为在服务器的错误日志中出现"port in use"命令。找出这个孤儿rsync进程,然后手动杀掉。
  • 性能:从设计角度看,集群的性能不会比最慢的节点的性能高。同一台机器上,甚至是单节点的集群的性能也不是独立的数据库的性能好。特别是在大型的事务处理的时候。
  • 不支持Windows。
  • 复制过滤:在galera集群中,需要小心使用复制过滤。作为一个基本准则,除了InnoDB的DML更新操作,这些复制过滤是不被galera集群推崇的:binlog-do-db,binlog-ignore-db,replicate-wild-do-db,replicate-wild-ignore-db。然而replicate-do-db,replicate-ignore-db过滤是被InnoDB和MyISAM存储引擎的DDL和DML语句支持的。也就是说,必须小心使用复制过滤,因为可能造成数据差异和复制中断。
  • FLUSH PRIVILEGES不会被复制。
  • 5.5.40-galera和10.0.14-galera之前的版本,需要关闭query cache的功能。
  • 在设置异步复制时,在galera节点作为从节点时,在从节点上不支持并发复制(slave-parallel-threads>1)。

原文地址: https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/

参考

mariadb galera 集群注意事项(翻译) - 永福的博客 - OSCHINA https://my.oschina.net/foreverich/blog/743851

mariadb galera群集故障记录的更多相关文章

  1. Mariadb galera 群集

    环境:  CentOS 7 x64  *  3 IP : 192.168.0.100 IP : 192.168.0.101 IP : 192.168.0.102 配置mariadb YUM 源 htt ...

  2. Mariadb Galera Cluster 群集 安装部署

    #Mariadb Galera Cluster 群集 安装部署 openstack pike 部署  目录汇总 http://www.cnblogs.com/elvi/p/7613861.html # ...

  3. 从 MySQL+MMM 到 MariaDB+Galera Cluster : 一个高可用性系统改造

    很少有事情比推出高可用性(HA)系统之后便经常看到的系统崩溃更糟糕.对于我们这个Rails运行机的团队来说,这个失效的HA系统是MySQL多主复制管理器(MMM). 我们已经找寻MMM的替代品有一段时 ...

  4. Linux下MySQL/MariaDB Galera集群搭建过程

    MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...

  5. MariaDB Galera Cluster部署手册

    MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1>  yum install opens ...

  6. MariaDB Galera Cluster 10.1 只支持 LINUX ?!

    MariaDB Galera Cluster  (MariaDB 10.1) 当前只支持:LINUX ! 参考: https://mariadb.com/kb/en/mariadb/getting-s ...

  7. 【原】基于 HAproxy 1.6.3 Keeplived 在 Centos 7 中实现mysql mariadb galera cluster 集群分发读写 —— 上篇

    前言 有一段时间没有写blogs,乘着周末开始整理下haproxy + keeplived 实现 mysql mariadb galera cluster 集群访问环境的搭建工作. 本文集中讲hapr ...

  8. 迁移到MariaDB galera

    迁移到MariaDB galera [已注销] [已注销] -- :: [安装] ====== https://downloads.mariadb.org/mariadb/repositories/ ...

  9. MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

    MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...

随机推荐

  1. CPN tools 帮助文档资料和实例

    1.替代变迁 包含有替代变迁的页面叫做父页,当CPN网使用替代变迁的时候,替代变迁所表达的逻辑必须在某一个位置得到实现,实现替代变迁逻辑页面叫做子页或者子网. 将替代变迁相邻的库所叫做槽库所,也即是在 ...

  2. 使用Cloudera Manager搭建Hive服务

      使用Cloudera Manager搭建Hive服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装Hive环境 1>.进入CM服务安装向导 2>.选择需要 ...

  3. MySQL 5.7主从复制实战篇

    MySQL 5.7主从复制实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装MySQL数据库并启动 1>.在MySQL官方下载相应的安装包(https://dev ...

  4. 1.后期特效合成AE概述&&工作流程&&磁盘缓存清理

    1.简介: After Effects:是一款专业的后期制作与特效合成软件: 2.AE界面介绍  2.1 项目面板   2.2 合成预览面板   2.3 时间线面板     2.4 辅助面板    2 ...

  5. Photozoom图像放大的技术一二事

    平行空间下,未知的可能不仅仅是这个世界,还可能是前所未有的未知的探索.那么对于微小型世界来说,我们就需要借助技术的支撑来发现.photozoom就好比是“电子的放大镜”,对我们清晰图像的放大起到了重要 ...

  6. 163data.com.cn data

    163data.com.cn是什么?终于搞清楚了...   查看文章     163data.com.cn是什么?终于搞清楚了... 2008-05-31 00:41 一场误会,真TN的无聊的吓人从日 ...

  7. Spark-2.3.2 HBase BulkLoad

    在大量数据需要写入HBase时,通常有Put方式和BulkLoad两种方式. Put不做解释. BulkLoader方式的优势在于: 1.不会触发WAL预写日志,当表还没有数据时进行数据导入不会产生F ...

  8. vue-(过滤器,钩子函数,路由)

    1.局部过滤器 在当前组件内部使用过滤器,修饰一些数据 //声明 filters:{ '过滤器的名字':function(val,a,b){ //a 就是alax ,val就是当前的数据 } } // ...

  9. python的简介(解释器、变量、用户交互、if语句)

    一.python的起源 python是吉多·范罗苏姆(Guido van Rossum)在1989年的圣诞节期间因为无聊打发时间所开发的一个脚本解释程序. python是一门解释型.弱类型的编程语言. ...

  10. 如何在linux环境下配置环境变量

    jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在linux环 ...