背景:之前实现的mysql同步复制功能(见笔者之前文章 http://www.linuxidc.com/Linux/2014-10/107980.htm)只是双机热备功能,还不能做到Mysql链接的自动切换。本配置实现真正的mysql集群,使得在某台机子的mysql应用停止时,能让应用程序自动切换到另外一台机子的mysql连接,实现应用的高稳定性,并且使得扩展Mysql服务成为可能。本配置使用mysql-mmm(master-master Replication Manager for MySQL)组件实现集群功能。本次演示的配置使用三台机器,架构如下:Master1 和Master2两台机器实现双机热备,其中一台机器的mysql服务停止或机器宕机,应用程序都会将数据库连接自动切换到另外一台机子。另外用一台机子实时备份master1的数据。--------------------------------------分割线 --------------------------------------MySQL-MMM实现MySQL高可用 http://www.linuxidc.com/Linux/2014-02/96994.htmMySQL-MMM切换演示 http://www.linuxidc.com/Linux/2012-11/74202.htmmysql proxy、MySQL-MMM实现读写分离高可用性 http://www.linuxidc.com/Linux/2012-09/71010.htm将MySQL-MMM Master从REPLICATION_FAIL状态恢复 http://www.linuxidc.com/Linux/2011-12/49750.htmCentOS下利用MySQL-MMM实现MySQL高可用 http://www.linuxidc.com/Linux/2011-11/46685.htm--------------------------------------分割线 --------------------------------------1、安装mysql-mmm服务在三台机器都安装wget http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpmyum -y install mysql-mmm*完成后查看 rpm -qa|grep mysql-mmm有以下组件表示安装成功Rhel5或centos5,32位:http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpmRhel6或centos6,32位:http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpmRhel6或centos6,64位:http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm1、添加mysql的用户在三台机器都添加mysql用户,分别用于复制、进入mysql服务mysql -u root -puse mysql;grant REPLICATION slave,REPLICATION CLIENT on *.* to "repl"@"%" identified by "password"; //建立复制用户grant PROCESS,SUPER,REPLICATION CLIENT on *.* to "mmm_agent"@"%" identified by "password"; //建立agent用户grant REPLICATION CLIENT on *.* to "mmm_monitor"@"%" identified by "password"; //建立用户FLUSH PRIVILEGES;2、配置同步复制配置复制的策略如架构图所示。配置方法在我上一篇文章有介绍过,这里不再重复,见笔者之前文章 http://www.linuxidc.com/Linux/2014-10/107980.htm3、修改hosts分别修改三台机器的hosts文件vi /etc/hosts添加200.200.168.24 M1200.200.168.25 M2200.200.168.23 slave14、配置mysql-mmm修改 /etc/mysql-mmm/mmm_common.conf 各台机子的配置都一样active_master_role writer<host default>
cluster_interface eth0
pid_path /var/run/mysql-mmm/mmm_agentd.pid
bin_path /usr/libexec/mysql-mmm/
replication_user repl
replication_password password
agent_user mmm_agent
agent_password <span style="font-size: 13.3333339691162px;">password</span>
</host><host M1>
ip 200.200.168.24
mode master
peer M2
</host><host M2>
ip 200.200.168.25
mode master
peer M1
</host><host slave1>
ip 200.200.168.23
mode slave
</host><role writer>
hosts M1,M2
ips 200.200.168.26
mode exclusive
</role><role reader>
hosts M1,M2,slave1
ips 200.200.168.27
mode balanced
</role>注意:200.200.168.26和200.200.168.27是两个虚拟的IP地址,供应用程序调用,只需用两个没人占用的IP就可以,分别用来提供写和读服务,为以后实现数据库的读写分离(但实现读写分离需要修改应用程序,mysql并不能自动识别并切换)。修改/etc/mysql-mmm/mmm_agent.conf三台机器分别设置为this M1、this M2、this slave1修改/etc/mysql-mmm/mmm_mon.conf只是monitor(200.200.168.24)机子需要配置include mmm_common.conf
<monitor>
ip 127.0.0.1
pid_path /var/run/mysql-mmm/mmm_mond.pid
bin_path /usr/libexec/mysql-mmm
status_path /var/lib/mysql-mmm/mmm_mond.status
ping_ips 200.200.168.24,200.200.168.25,200.200.168.23
auto_set_online 10 # The kill_host_bin does not exist by default, though the monitor will
# throw a warning about it missing. See the section 5.10 "Kill Host
# Functionality" in the PDF documentation.
#
# kill_host_bin /usr/libexec/mysql-mmm/monitor/kill_host
#
</monitor>
<host default>
monitor_user mmm_monitor
monitor_password password
</host>
debug 0配置完成后运行三台机子都需运行:/etc/init.d/mysql-mmm-agent startMonitor机子运行/etc/init.d/mysql-mmm-monitor start
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-10/107981p2.htm
MySQL5.6配置同步复制的新方法以及常见问题的解决方法Oracle中的逻辑数据库和物理数据库相关资讯 MYSQL集群 MySQL-MMM
- MySQL集群之MySQL Cluster (04月11日)
- Linux下MySQL/MariaDB Galera集群 (01月10日)
- MySQL与MariaDB 传统主从集群配置 (10/22/2015 20:27:49)
| - MySQL高可用方案几种方案 (02月20日)
- MySQL与MariaDB 新型主从集群配置 (10/22/2015 20:32:05)
- MySQL高可用架构之MySQL-MMM配置详 (08/16/2015 11:14:29)
|
本文评论 查看全部评论 (0)