Jephe Wu - http://linuxtechres.blogspot.com
Environment: CentOs 6.1, MMM 2.2.1, MySQL 5.1.52
Objective: setup MMM among the databases to gain HA and load balance for read access
Steps:
1. install required packages for mmm agent on database servers
yum -y install perl-Config-IniFiles
yum -y install mysql-mmm mysql-mmm-agent mysql-mmm-tools mysql-proxy
2. install required packages for mmm monitor on monitoring host
yum -y install mysql-mmm-monitor
chkconfig mysql-mmm-agent on
chkconfig mysql-mmm-monitor on
3. preparing ips for databases
db1: 172.17.7.1 master
db2: 172.17.7.2 master
db3: 172.17.7.3 slave
master exclusive ip: 172.17.7.4
slave balanced ip addresses: 172.17.7.5, 172.17.7.6, 172.17.7.7
4. setup /etc/mysql-mmm/mmm_agent.conf to change 'this' line to db1/db2 or db3
5. setup /etc/mysql-mmm/mmm_common.conf for all monitor and agents
# more /etc/mysql-mmm/mmm_common.conf
active_master_role writer
<host default>
cluster_interface bond0
pid_path /var/run/mysql-mmm/mmm_agentd.pid
bin_path /usr/libexec/mysql-mmm/
replication_user replication
replication_password replication_password
agent_user mmm_agent
agent_password agent_password
</host>
<host db1>
ip 172.17.7.1
mode master
peer db2
</host>
<host db2>
ip 172.17.7.2
mode master
peer db1
</host>
<host db3>
ip 172.17.7.3
mode slave
</host>
<role writer>
hosts db1, db2
ips 172.17.7.4
mode exclusive
</role>
<role reader>
hosts db1, db2, db3
ips 172.17.7.5, 172.17.7.6, 172.17.7.7
mode balanced
</role>
6. start up agents on database servers first
on db1,db2 then db3, to start up mmm agent: /etc/init.d/mysql-mmm-agent start
7. start up monitor process on monitoring host
on mon01, to start up: /etc/init.d/mysql-mmm-monitor start
8. bring up them online from mon01
mon01# mmm_control set_online db1
mon01# mmm_control set_online db2
mon01# mmm_control set_online db3
root@mon01:/etc/mysql-proxy/ # mmm_control show
db1(172.17.7.1) slave/REPLICATION_DELAY. Roles:
db2(172.17.7.2) master/ONLINE. Roles: reader(172.17.7.5), reader(172.17.7.6)
db3(172.17.7.3) master/ONLINE. Roles: reader(172.17.7.7), writer(172.17.7.4)
9. FAQ
a. read_only (on/off) from show variables comand in mysql
if db2 and db3 are writer, when writer role goes to db3, mmm will set read_only flag for db2 to prevent any writing process, but only for normal user, not root.