1、配置yum源
[root@mgr1 ~]# cat /etc/yum.repos.d/signal18.repo [signal18] name=Signal18 repositories baseurl=http://repo.signal18.io/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
2、yum安装过程
[root@mgr1 ~]# yum install replication-manager-osc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.dal.nexril.net * epel: mirrors.yun-idc.com * extras: mirrors.huaweicloud.com * updates: mirrors.tuna.tsinghua.edu.cn github_orchestrator/x86_64/signature | 833 B 00:00:00 github_orchestrator/x86_64/signature | 1.0 kB 00:00:00 !!! github_orchestrator-source/signature | 819 B 00:00:00 github_orchestrator-source/signature | 951 B 00:00:00 !!! signal18 | 2.9 kB 00:00:00 signal18/7/x86_64/primary_db | 5.8 kB 00:00:01 Resolving Dependencies --> Running transaction check ---> Package replication-manager-osc.x86_64 1560253855:2.0.1_28_gf072-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================================================================= Installing: replication-manager-osc x86_64 1560253855:2.0.1_28_gf072-1 signal18 26 M Transaction Summary ================================================================================================================================================================================================= Install 1 Package Total download size: 26 M Installed size: 192 M Is this ok [y/d/N]: y Downloading packages: replication-manager-osc-2.0.1_28_gf072-1.x86_64.rpm | 26 MB 00:22:57 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1560253855:replication-manager-osc-2.0.1_28_gf072-1.x86_64 1/1 Verifying : 1560253855:replication-manager-osc-2.0.1_28_gf072-1.x86_64 1/1 Installed: replication-manager-osc.x86_64 1560253855:2.0.1_28_gf072-1 Complete!
3、配置文件修改
[root@mgr1 ~]# find / -name *.toml /etc/replication-manager/cluster.d/cluster01.toml /etc/replication-manager/cluster.d/cluster02.toml [root@mgr1 ~]# vim /etc/replication-manager/cluster.d/cluster01.toml [root@mgr1 ~]# mkdir -p /data/replication-manager [root@mgr1 ~]# mkdir -p /data/share_replication-manager [root@mgr1 ~]# vim /etc/replication-manager/config.toml [root@mgr1 ~]# cat /etc/replication-manager/config.toml [Cluster01] title = "Cluster01" db-servers-hosts = "192.168.56.14:3306,192.168.56.15:3306,192.168.56.16:3306" db-servers-prefered-master = "192.168.56.15:3306" db-servers-credential = "orchestrator:123456" db-servers-connect-timeout = 1 replication-credential = "orchestrator:123456" failover-mode = "automatic" [Default] monitoring-datadir = "/data/replication-manager" monitoring-sharedir = "/data/share_replication-manager" log-level=1 log-file = "/var/log/replication-manager.log" replication-multi-master = false replication-multi-tier-slave = false failover-readonly-state = true http-server = true http-bind-address = "0.0.0.0" http-port = "10001"
4、启动
[root@mgr1 ~]# /etc/init.d/replication-manager restart Restarting replication-manager (via systemctl): [ OK ] [root@mgr1 ~]#
5、切换测试
6、结合中间件maxscale,proxysql
maxscale,proxysql负责读写分离,因为这两个中间件本身就有识别发现主的功能,所以replication-manager负责管理主从failover的主库选举和从库指向新主。 发现replication-manager可以对maxscale,proxysql管理,我觉得这个两个中间件主动发现模式已经够用了,不需要被动接收replication-manager发送信息。
7、特别说明:
shutdown的主节点上线后,replication-manager会自动把其加入集群。 replication-manager不需要在MySQL节点安装客户端
8、我的环境:
mgr安装的是replication-manager es1-3安装的是MySQL5.7 gtid主从 [root@mgr1 maxscale]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.13 mgr 192.168.56.14 es1 192.168.56.15 es2 192.168.56.16 es3 [root@mgr1 maxscale]# [root@es3 bin]# cat /etc/my.cnf |grep -v ^#[mysqld]datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid gtid-mode = ON enforce-gtid-consistency = ON log-slave-updates = ON log-bin=mysqlbin server-id=3 report_host=es3[root@es3 bin]#