mysql group replication集群研究之常见问题
http://www.ps-aux.com/mysql%20group%20replication%E9%9B%86%E7%BE%A4%E7%A0%94%E7%A9%B6%E4%B9%8B%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98.html
前言
第一篇介绍了MGR使用的必知和注意,二和三篇降了配置方便的操作.
这一篇来总结下常见的问题和一些管理MGR的注意点.
问:使用MGR我应该着重注意什么?
答: 第一篇已经详细讲到,具体可以看第一篇文章.略微再说下,Innodb引擎,
每个表都必须有主键这两条是硬性条件.
MGR集群最多支持多少个节点,且容忍的故障数量比是什么?
答: MGR集群官方说目前最多支持9个节点.其中容忍的故障节点数f和总集群
节点数量n的计算公式是: n=2 * f + 1
.
假设f=1,那么n=3.
重启mysql实例后如何重新加入集群?
答: 默认通过mysqlsh配置的MGR集群,默认是不会自动加入集群.
手动通过cluster.rejoin('root@db1:3306')
输入密码后加入集群.
此外,建议每一个成功加入集群的实例后执行下configure_local_instance
用于把集群配置参数自动保存到my.cnf
.
如何处理意外断电的情况,或者说所有实例都重启了如何恢复集群?
答: 通过mysqlsh远程连接到集群节点,注意是远程(mysqlsh –uri root@ip).
然后执行:dba.rebootClusterFromCompleteOutage('devCluster')
.
传入的参数是创建集群的集群名字.
我该怎样从MGR的mysql实例中导出数据库数据,或者说mysqldump使用有什么不同吗?
答: 由于节点都是启用了gitd,如果你导出数据用于导入到其他节点建议指定选项--set-gtid-purged=OFF
.完整的命令看起来像:
1
|
mysqldump --all-databases --single-transaction --set-gtid-purged=OFF --user=root --password > all_databases.sql
|
mysql-router过滤数据包吗?mysql-router降低多少性能?
答: mysql-router不检查过滤数据包,其只将数据请求重定向到正确的后端节点.
不管什么时候引入中间件都是会产生一定开销的,幸好mysql-router并不重,
官方公布的性能消耗约为1%.
每个mysql-router支持多少个并发链接?
答: mysql-router每个实例支持512个并发链接.这个和mysql5.7默认的max_connections
一致.通常我们使用mysql-router和app应用同台,也就是说
你可以起多个mysql-router.这样即保证了mysql-router本身的高可用,也易于扩展.