MariaDB 10.2.10 + Centos 7。
我已使用HAProxy配置MariaDB Galera集群,并成功测试。
对于备份,我想为Galera集群添加一个异步复制从属,但失败了。
以下是我的行动:
完成所有galera集群操作后,我在每个galera节点的/etc/my.cnf.d/server.cnf's
[mysqld]部分下添加了以下配置:
[mysqld]
log_bin
log_slave_updates
gtid_strict_mode
server_id=1
[galera]
wsrep_gtid_mode
并在每个从属节点的/etc/my.cnf.d/server.cnf's
[mysqld]部分下添加了以下配置:
[mysqld]
binlog_format=ROW
log_bin
log_slave_updates
server_id=2
gtid_strict_mode
稍后创建了一个用于复制的用户,并在一个galera节点上执行了mysqldump
并在从属节点上执行了导入。
然后跑上奴隶:
stop slave; change master to master_host='one galera node name ',master_port=3306,master_user='repl_user',master_password='repl_password',master_use_gtid=current_pos; start slave;
但失败了。 错误消息是:
从二进制日志中读取数据时,来自master的致命错误1236: '错误:连接从站请求从GTID 0-2-11开始,这是 不在主人的binlog'
你有任何建议,如果有的话,非常感谢。
答案 0 :(得分:1)
经过研究,我修改了上面提到的设置:
在Galera群集的每个节点上,它们具有相同的域ID和不同的服务器ID:
LD_LIBRARY_PATH
在从属节点上,从属节点具有不同的域ID和服务器ID:
[mysqld]
log_bin
log_slave_updates
gtid_strict_mode
gtid_domain_id=1
server_id=1
[galera]
wsrep_gtid_mode
然后执行mysqldump和mysql导入,最后一次运行
[mysqld]
binlog_format=ROW
log_bin
log_slave_updates
gtid_domain_id=2
server_id=2
一切顺利。
当我添加数据库或表或将数据插入一个表时,它可以同步到从节点。
答案 1 :(得分:0)
@Winson He
解释是错误的。它应如下所示: galera节点1、2、3 =>每个节点都具有相同的domain_ID和唯一的server_id。
从节点=>不同的domain_ID和唯一的server_id。
因此,实际上,无论集群/主服务器/从属服务器,所有服务器都具有唯一的server_id,而Galera集群节点将具有相同的domain_id,而从属服务器则位于不同的domain_id中。