关于该高可用方案的局限性:
- 只能在InnoDB引擎下,才能实现复制.其他所有表的改写(包括mysql.*),都不会被复制.然而,DDL语句会被复制.在修改权限的时候,使用CREATE USER或者GRANT...可以被复制,使用INSERT INTO mysql.user将不会被复制.
-
不支持的SQL:
- LOCK/UNLOCk TABLE
- lock functions(GET_LOCK(),RELEASE_LOCK()...)
- 查询日志不能被重定向表.如果你打开查询日志,必须要改成文件模式:log_output = FILE.用general_log或者general_log_file变量指定日志名称.
- 允许的事务大小由wsrep_max_ws_rows 和 wsrep_max_ws_size设置.LOAD DATA INFILE ...每1万行提交一次.对于LOAD DATA中的大事务会被分割成多个小事务来执行.
-
对于多节点同时修改同一行数据,在COMMIT时,可能有的节点会返回下面的错误代码:
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
- 分布式事务不能支持提交后的回滚操作.
- 整个集群的写入极限由最差的节点决定(木桶原理).如果有一个节点变的很慢,那么整个集群就会变慢.如果你要求较高的性能,应该保证较高的硬件配置.
- 要保证有3个或3个以上的集群节点.