为MariaDB Galera配置从属复制

时间:2017-12-05 22:24:31

标签: mariadb replication galera

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'

你有任何建议,如果有的话,非常感谢。

2 个答案:

答案 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中。