我想弄清楚如何设置复制和故障切换在4个服务器(每个位置2个)任何服务器可能承担主angular色的情况下。 我最初的情况是以下一个:
为此,我正考虑使用在O'Reilly的“高性能MySQL”上提出的configurationMaster-Master Active-Passive,以便每个人都可以在需要时成为Master。
如果主人“死亡”,地点A的其他服务器将尽可能承担主angular色。 它总是比地点B上的服务器具有更高的优先级。如果地点A上没有服务器能够这样做,位置B上的服务器将只切换到主服务器。
由于MySQL无法自动处理,我需要一些其他的方式来实现这一点。 我已经读过心跳和Maatkit。 这是要走的路吗? 有没有人在类似的情况下使用这个? 有没有其他的方式去实现这一目标? 任何关于失败的指针将不胜感激。
我希望尽可能简单的避免像DRDB这样的东西。 我并不担心高可用性只是自动切换angular色的一种方法,没有太多的麻烦。
我正在使用SuSe Enterprise 10和MySQL 5.1.30社区。
提前致谢,
若昂
位置A:两个HA MySQL代理(serv1 ip 192.168.0.1,serv2 ip 192.168.0.2)
位置B:两个MySQL数据master-master(serv1 ip 192.168.0.3,serv2 ip 192.168.0.4)
serv1 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_size = 200M binlog_ignore_db = test binlog_ignore_db = mysql master-host = 192.168.0.4 master-user = replication master-password = you_pass master-port = 3306 mysql -u root -p Enter password: >grant replication slave on *.* to 'replication'@'192.168.0.4' identified by 'you_pass'; >flush privileges; >quit; /etc/init.d/mysql restart serv2 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log max_binlog_size = 200M binlog_ignore_db = test binlog_ignore_db = mysql master-host = 192.168.0.3 master-user = replication master-password = you_pass master-port = 3306 mysql -u root -p Enter password: >grant replication slave on *.* to 'replication'@'192.168.0.3' identified by 'you_pass'; >flush privileges; >quit; /etc/init.d/mysql restart mysql —u root —p Enter password: >show slave status \G
loc1 serv1和serv2安装mysql-proxy和心跳
mysql-proxy --proxy-backend-addresses=192.168.0.3 \ --proxy-backend-addresses=192.168.0.4 \ --proxy-address=:3306 —daemon
授权键
auth 2 2 sha1 your-strong-password
ha.cf
logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 10 initdead 120 bcast eth0 udpport 694 auto_failback on node mysql-proxy1 node mysql-proxy2
mysql-proxy1和mysql-proxy1在此主机上是uname -n
的haresources
mysql-proxy1 192.168.0.5
192.168.0.5虚拟的mysql地址