往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号
MySQL Galera Clusters全解析 Part 1 Galera Cluster 简介
MySQL Galera Clusters全解析 Part 2 基于认证的复制
MySQL Galera Cluster全解析 Part 3 状态快照传输(SST)
MySQL Galera Cluster全解析 Part 4 Galera Cluster 安装前准备
MySQL Galera Cluster全解析 Part 5 Galera Cluster软件安装
| 主机名 | IP地址 | 操作系统 | MySQL版本 | 插件版本 |
|---|---|---|---|---|
| rac1 | 11.12.14.29 | Redhat 6.10 | 5.7.26 | 25.3.27 |
| rac2 | 11.12.14.30 | Redhat 6.10 | 5.7.26 | 25.3.27 |
| rac3 | 11.12.14.39 | Redhat 6.10 | 5.7.26 | 25.3.27 |
前面我们说了Galera Cluster有三种不同的分支
MySQL Galera Cluster by Codership
Percona XtraDB Cluster by Percona
MariaDB Galera Cluster (5.5 and 10.0) by MariaDB
上面我们说了如何一步步搭建MySQL Galera集群
这节内容主要讲其和单机的MySQL有何不同点,包含一些需求和限制
Galera需要和传统的单机不一样,其需要集成一些补丁,并且在二进制日志和字符集的处理上也不一样
Galera 支持Linux和类UNIX操作系统,二进制包不在FreeBSD, Solaris and Mac OS X上提供
同时不支持Windows操作系统
不要使用binlog-do-db and binlog-ignore-db选项
这些二进制日志选项只支持DML语句,不知道DDL语句,可能会造成复制中断
不要使用UTF-16, UTF-32 or UCS-2字符集
当使用rsync 方法进行SST时,使用这些字符集可能会导致服务崩溃
一些传统数据库的表配置可能Galera不同,如存储引擎支持,查询缓存等
Galera只支持innodb存储引擎,其他的非事务型存储引擎如MyISAM将无法被复制,只会同步DDL不会同步DML,如新建一张MyISAM表并插入数据,其他节点会新建表但是不会插入数据(行数为0)
不要使用无主键的表,需要为表设置主键,如果实在没有,可以设置自动增长(AUTO_INCREMENT )的列
Galera不支持表锁,因为会和多主冲突,所以LOCKTABLES and UNLOCK TABLES 语句不被支持,同样GET_LOCK() and RELEASE_LOCK()函数也不可以使用
Galera无法将查询日志定向到表中,如有需求,你必须将其定向到文件中
log_output = FILE
Galera不支持分布式事务XA
事务的大小上也有限制,否则会大幅降低Galara性能,一般我们设置wsrep_max_ws_rows and the wsrep_max_ws_size参数来限制
Galera中如果两个事务同时写同一行,而且是在不同的节点,此时只有一个事务会成功,另一个会被回滚,这时你需要重新执行失败的那一个
我们可以在日志中看到一段死锁警告
code (Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)
https://galeracluster.com/library/training/tutorials/differences.html
可点击阅读原文获得更好的阅读体验,推荐在PC端阅读
也可在公众站内搜索中回复 garela 搜索相关内容
或直接打开个人网页搜索
http://
往期专题包括:
Python 自动化运维
MySQL 安装
mysqldump命令详解
mysqlbinlog命令详解
xtrabackup工具详解
打造属于自己的监控系统
Python爬虫基础
Oracle awr报告全解析
Oracle ASM全解析
Oracle Data Guard全解析
Oracle ClusterWare全解析
Oracle常见参数解析
Oracle常见故障处理
Oracle SQL优化案例

觉得文章不错的欢迎关注,转发,收藏,点赞~
原文作者:宅必备;如有侵权,请联系管理员删除。