SlideShare una empresa de Scribd logo
1 de 10
mysql-mmm 安装指南
注意:本指南只是一个草稿,如果你觉得有些地方需要改善、         扩展或者修正的话,
你可以随意更改。本指南所描述的是基于 Debian Lenny (5.0)平台的 mysql-
mmm2 的安装(不包含 mmm tools)。

一个最基本的安装必须至少包含 2 个数据库服务器和一个监控服务器,在这个
指南中,我用了 5 台基于 Debian Lenny (5.0)平台的服务器
function        ip                   hostname serveri
                                              d
Monitoring host 192.168.100.100  mon          -
master 1        192.168.100.101  db1          1
master 2        192.168.100.102 db2           2
slave 1         192.168.100.103 db3           3
slave 2         192.168.100.104 db4           4


我用了以下的虚拟 IP,他们将会在被 mmm 分配
ip                       role              description
192.168.100.200          writer            你的应用程序应该连接到这个 ip 进行写操作
192.168.100.201          reader            你的应用程序应该链接到这些 ip 中的一个进行
192.168.100.202          reader            读操作
192.168.100.203          reader
192.168.100.204          reader


Master1 的基本配置
首先我们在所有的主机上安装 mysql


aptitude install mysql-server

然后我们修改/etc/mysql/my.cnf 文件的配置,加入以下行,确保所有的主机使用的不同的
server id:

server_id      =1
log_bin        = /var/log/mysql/mysql-bin.log
log_bin_index     = /var/log/mysql/mysql-bin.log.index
relay_log      = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates = 1
read_only       =1
删除下面这行:


bind-address = 127.0.0.1


当然要配置绑定到你的 ip 上:


bind-address = <your_IP_address>

然后为了让我们更改的配置文件生效需要重启下 mysql 服务:


/etc/init.d/mysql restart




创建用户
现在我们来创建需要的用户,我们需要创建 3 个不同的用户
功能              描述                                       权限
monitor user    mmm 监控用于对 mysql 服务                       REPLICATION CLIENT
                器进程健康检查
agent user      mmm 代 理 用 来 更 改 只 读 模                    SUPER,     REPLICATION
                式,复制的主服务器等等                              CLIENT, PROCESS
relication user 用于复制                                     REPLICATION SLAVE



创建用户语句的代码如下:

GRANT REPLICATION CLIENT                   ON *.* TO 'mmm_monitor'@'192.168.0.%'
IDENTIFIED BY 'monitor_password';
GRANT      SUPER,      REPLICATION    CLIENT,      PROCESS       ON      *.*    TO
'mmm_agent'@'192.168.0.%' IDENTIFIED BY 'agent_password';
GRANT REPLICATION SLAVE                       ON *.* TO 'replication'@'192.168.0.%'
IDENTIFIED BY 'replication_password';


注意:就以上这些允许用户连接的主机而言我们可以设置更多的限制,比如 mmm 监控主
机是从 192.168.0.10 连接的,mmm 代理和复制是从 192.168.0.11 - 192.168.0.14 连接的,




服务器之间的数据同步
我们假定 db1 上的数据是正确的。          假如你有一个空的数据库,你仍然需要同步我们刚才创建
的些帐号。
首先,当我们创建备份的过程中必须保证没有人更改数据库上的数据:
(db1) mysql> FLUSH TABLES WITH READ LOCK;
然后获取二进制日志文件目前的位置,我们一会在设置 db2、db3 和 db4 主从复制的时候要
用到:

(db1) mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 374 |                 |             |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


先不要关闭这个 mysql 命令行模式。           假如你关闭了它,那么刚才设置的数据库锁
定就会被解锁,因此你需要再开启一个终端,并输入:
db1$ mysqldump -u root -p --all-databases > /tmp/database-backup.sql
现在我们可以对数据库解除锁定了,在上面第一个 mysql 命令行输入:

(db1) mysql> UNLOCK TABLES;


复制刚才的数据库备份到 db2, db3 and db4:

db1$ scp /tmp/database-backup.sql <user>@192.168.0.12:/tmp
db1$ scp /tmp/database-backup.sql <user>@192.168.0.13:/tmp
db1$ scp /tmp/database-backup.sql <user>@192.168.0.14:/tmp


然后将备份导入到 db2, db3 and db4:

db2$ mysql -u root -p < /tmp/database-backup.sql
db3$ mysql -u root -p < /tmp/database-backup.sql
db4$ mysql -u root -p < /tmp/database-backup.sql


然后刷新 db2, db3 and db4 的权限,我们更改了 user 表,所以 mysql 要重新读取这个表

(db2) mysql> FLUSH PRIVILEGES;
(db3) mysql> FLUSH PRIVILEGES;
(db4) mysql> FLUSH PRIVILEGES;


在 debian 和 ubuntu 中,从 db1 复制/etc/mysql/debian.cnf 文件中的密码到 db2、db3 和 db4,
这个密码是用来启动和停止数据库的
现在所有的数据库的数据都是一致的了,我们可以开始设置主从复制来保持数据一致的状
况了!




设置同步
通过下面的命令设置在 db2, db3 和 db4 上的复制

(db2) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306,
master_user='replication',
                           master_password='replication_password', master_log_file='<file>',
master_log_pos=<position>;
(db3) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306,
master_user='replication',
                           master_password='replication_password', master_log_file='<file>',
master_log_pos=<position>;
(db4) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306,
master_user='replication',
                           master_password='replication_password', master_log_file='<file>',
master_log_pos=<position>;


请在<file> 和 <position>上插入我们前面在 db1 上用“show master status”看到的二进制日志
文件名和二进制日志的位置。
然后用以下命令启动 3 个主机上的 slave 进程

(db2) mysql> START SLAVE;
(db3) mysql> START SLAVE;
(db4) mysql> START SLAVE;


现在用一下命令检查所有主机上的复制是否正常

(db2) mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
         Slave_IO_State: Waiting for master to send event
         Master_Host: 192.168.0.11
         Master_User: replication
         Master_Port: 3306
         Connect_Retry: 60
…
(db3) mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
         Slave_IO_State: Waiting for master to send event
         Master_Host: 192.168.0.11
         Master_User: replication
         Master_Port: 3306
         Connect_Retry: 60
…
(db4) mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
          Master_Host: 192.168.0.11
          Master_User: replication
          Master_Port: 3306
          Connect_Retry: 60



现在我们要设置 db1 从 db2 上复制,首先我们要确定 master_log_file 和 master_log_pos 的
值:

(db2) mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |         98 |          |            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


我们用下面的命令配置 db1 上的复制:

(db1) mysql> CHANGE MASTER TO master_host = '192.168.0.12', master_port=3306,
master_user='replication',master_password='replication_password',master_log_file='<file>',
master_log_pos=<position>;


请在<file> 和 <position>上插入我们前面在 db2 上用“show master status”看到的二进制日志
文件名和二进制日志的位置。
启动从进程

(db1) mysql> START SLAVE;


检查 db1 上的复制是否正常


(db1) mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.0.12
                Master_User: <replication>
                Master_Port: 3306
                Connect_Retry: 60
…

所有的复制应该已经 ok 了,试着在 db1 和 db2 上插入数据,然后看看会不会同
步更新到所有的节点上去。
MMM 安装
创建用户
可选的:创建 MMM 脚本和配置文件的所有者,这将能为安全地管理监控脚本提
供更简单的方法。

useradd --comment "MMM Script owner" --shell /sbin/nologin mmmd



监控主机
首先安装依存包:

aptitude install liblog-log4perl-perl libmailtools-perl liblog-dispatch-perl libclass-singleton-perl
libproc-daemon-perl libalgorithm-diff-perl libdbi-perl libdbd-mysql-perl


接下来取得最新版本的 mysql-mmm-common*.deb 和 mysql-mmm-monitor*.deb 文件,并安
装它们:

dpkg -i mysql-mmm-common_*.deb mysql-mmm-monitor*.deb



数据库主机
首先安装依存包:

aptitude install liblog-log4perl-perl libmailtools-perl liblog-dispatch-perl iproute libnet-arp-perl
libproc-daemon-perl libalgorithm-diff-perl libdbi-perl libdbd-mysql-perl


接下来取得最新版本的 mysql-mmm-common*.deb 和 mysql-mmm-agent*.deb 文件,并安装
它们:

dpkg -i mysql-mmm-common_*.deb mysql-mmm-agent_*.deb



配置 MMM
所有的配置选项都集合在了一个叫 /etc/mysql-mmm/mmm_common.conf 的单独文件中,系
统中所有主机的该文件内容都是一样的:




active_master_role        writer
<host default>
  cluster_interface   eth0
  pid_path          /var/run/mmmd_agent.pid
  bin_path          /usr/lib/mysql-mmm/
  replication_user    replication
  replication_password replication_password
  agent_user         mmm_agent
  agent_password        agent_password
</host>

<host db1>
  ip            192.168.100.101
  mode            master
  peer           db2
</host>

<host db2>
  ip             192.168.100.102
  mode             master
  peer            db1
</host>

<host db3>
  ip             192.168.100.103
  mode             slave
</host>

<host db4>
  ip             192.168.100.104
  mode             slave
</host>

<role writer>
  hosts           db1, db2
  ips            192.168.100.200
  mode             exclusive
</role>

<role reader>
  hosts           db1, db2, db3, db4
  ips           192.168.100.201, 192.168.100.202, 192.168.100.203, 192.168. 100.204
mode        balanced
</role>


不要忘记了拷贝这个文件到所有的主机(包括监控主机)!

在数据库主机上
我们需要编辑 /etc/mysql-mmm/mmm_agent.conf 文件,根据其他主机的不同更改 db1 的值
(db2 就将 db1 更改成 db2):

include mmm_common.conf
this db1



在监控主机上
我们需要编辑/etc/mysql-mmm/mmm_mon.conf 文件:

include mmm_common.conf

<monitor>
  ip       127.0.0.1
  pid_path    /var/run/mmmd_mon.pid
  bin_path    /usr/lib/mysql-mmm/
  status_path /var/lib/misc/mmmd_mon.status
       ping_ips      192.168.100.100, 192.168.100.101, 192.168.100.102, 192.168.100.103,
192.168.100.104
</monitor>

<host default>
  monitor_user     mmm_monitor
  monitor_password  monitor_password
</host>

debug 0



ping_ips 选项是通过 ping 这些 ip 来确认监控机的网络连接是正常的,我配置的是我的交换
机(192.168.0.1)和其他四台数据库服务器。


启动 MMM
启动代理
在数据库服务器上
编辑/etc/default/mysql-mmm-agent 来开启代理
ENABLED=1


然后启动它:

/etc/init.d/mysql-mmm-agent start




启动监控
在监控服务器上
编辑/etc/default/mysql-mmm-monitor 文件来开启监控

ENABLED=1


然后启动它:

/etc/init.d/mysql-mmm-monitor start


等待几秒钟 mmmd_mon 启动,在几秒钟后你可以用 mmm_control 来检查群集的状态

mon$ mmm_control show
 db1(192.168.0.11) master/AWAITING_RECOVERY. Roles:
 db2(192.168.0.12) master/AWAITING_RECOVERY. Roles:
 db3(192.168.0.13) slave/AWAITING_RECOVERY. Roles:
 db4(192.168.0.14) slave/AWAITING_RECOVERY. Roles:


因为这是第一次启动,所以我们的监控还不知道我们的主机,因此会设置所有主机的状态
为 AWAITING_RECOVERY 并且会记录一条警告信息!

mon$ tail /var/log/mysql-mmm/mmmd_mon.warn
…
2009/10/28 23:15:28      WARN Detected new host 'db1': Setting its initial   state to
'AWAITING_RECOVERY'. Use 'mmm_control set_online db1' to switch it online.
2009/10/28 23:15:28      WARN Detected new host 'db2': Setting its initial   state to
'AWAITING_RECOVERY'. Use 'mmm_control set_online db2' to switch it online.
2009/10/28 23:15:28      WARN Detected new host 'db3': Setting its initial   state to
'AWAITING_RECOVERY'. Use 'mmm_control set_online db3' to switch it online.
2009/10/28 23:15:28      WARN Detected new host 'db4': Setting its initial   state to
'AWAITING_RECOVERY'. Use 'mmm_control set_online db4' to switch it online.



现在我们设置我们的主机为在线状态( db1 最先,因为其他的主机是从 db1 复制更新
的!):
mon$ mmm_control set_online db1
OK: State of 'db1' changed to ONLINE. Now you can wait some time and check its new roles!
mon$ mmm_control set_online db2
OK: State of 'db2' changed to ONLINE. Now you can wait some time and check its new roles!
mon$ mmm_control set_online db3
OK: State of 'db3' changed to ONLINE. Now you can wait some time and check its new roles!
mon$ mmm_control set_online db4
OK: State of 'db4' changed to ONLINE. Now you can wait some time and check its new roles!




官方文档链接:http://mysql-mmm.org/mmm2:guide

Más contenido relacionado

La actualidad más candente

Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细colderboy17
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇小新 制造
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制maclean liu
 
了解Oracle critical patch update
了解Oracle critical patch update了解Oracle critical patch update
了解Oracle critical patch updatemaclean liu
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档xuebao_zx
 
阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)Hui Liu
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯liuts
 
Memcached内存分析、调优、集群
Memcached内存分析、调优、集群Memcached内存分析、调优、集群
Memcached内存分析、调优、集群hik_lhz
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newYiwei Ma
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理haiyuan ning
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)Yiwei Ma
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410maclean liu
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作maclean liu
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversionYUCHENG HU
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版redhat9
 

La actualidad más candente (18)

Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
 
了解Oracle critical patch update
了解Oracle critical patch update了解Oracle critical patch update
了解Oracle critical patch update
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
 
阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯
 
Memcached内存分析、调优、集群
Memcached内存分析、调优、集群Memcached内存分析、调优、集群
Memcached内存分析、调优、集群
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
 
Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作Oracle数据库升级前必要的准备工作
Oracle数据库升级前必要的准备工作
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversion
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
 

Destacado

Destacado (14)

Ley de habes data.
Ley de habes data.Ley de habes data.
Ley de habes data.
 
Social microwork
Social microwork Social microwork
Social microwork
 
συστημα αναπτυξης Presentation
συστημα αναπτυξης Presentationσυστημα αναπτυξης Presentation
συστημα αναπτυξης Presentation
 
Projeto Turismo Legal - Exploração Sexual não é atração turística
Projeto Turismo Legal - Exploração Sexual não é atração turísticaProjeto Turismo Legal - Exploração Sexual não é atração turística
Projeto Turismo Legal - Exploração Sexual não é atração turística
 
Жан Морис Эмиль Бодо
Жан Морис Эмиль БодоЖан Морис Эмиль Бодо
Жан Морис Эмиль Бодо
 
Khatia buniatishvili
Khatia buniatishviliKhatia buniatishvili
Khatia buniatishvili
 
Jable peñafielpractica1
Jable peñafielpractica1Jable peñafielpractica1
Jable peñafielpractica1
 
Presentació pressupost general exercici 2015
Presentació pressupost general exercici 2015Presentació pressupost general exercici 2015
Presentació pressupost general exercici 2015
 
Muerte
MuerteMuerte
Muerte
 
VX - PowerSeat -
VX - PowerSeat - VX - PowerSeat -
VX - PowerSeat -
 
Keira knightley
Keira knightley  Keira knightley
Keira knightley
 
Futurebuy 2014 Aust
Futurebuy 2014 AustFuturebuy 2014 Aust
Futurebuy 2014 Aust
 
Cambodia Digital Communications (August 2015)
Cambodia Digital Communications (August 2015)Cambodia Digital Communications (August 2015)
Cambodia Digital Communications (August 2015)
 
すぐに着手できる、SEO改善ポイントについて(前編)
すぐに着手できる、SEO改善ポイントについて(前編)すぐに着手できる、SEO改善ポイントについて(前編)
すぐに着手できる、SEO改善ポイントについて(前編)
 

Similar a Mysql mmm安装指南(翻译)

Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩chinafenghao
 
8, lamp
8, lamp8, lamp
8, lampted-xu
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86dbabc
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Bob Huang
 
九州通 Tsm重新配置文档(2008 11 10)
九州通 Tsm重新配置文档(2008 11 10)九州通 Tsm重新配置文档(2008 11 10)
九州通 Tsm重新配置文档(2008 11 10)heima911
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江thinkinlamp
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysqlpwesh
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略Da Zhao
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Yiwei Ma
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 Lheima911
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)acqua young
 
Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2ayanamist
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高mysqlpub
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除5045033
 
Squid安装配置
Squid安装配置Squid安装配置
Squid安装配置Yiwei Ma
 
5, system admin
5, system admin5, system admin
5, system adminted-xu
 
Oda安装 恢复步骤
Oda安装 恢复步骤Oda安装 恢复步骤
Oda安装 恢复步骤n-lauren
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 

Similar a Mysql mmm安装指南(翻译) (19)

Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩
 
8, lamp
8, lamp8, lamp
8, lamp
 
Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86Oracle10g Rac Configuration For Linux X86
Oracle10g Rac Configuration For Linux X86
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01
 
九州通 Tsm重新配置文档(2008 11 10)
九州通 Tsm重新配置文档(2008 11 10)九州通 Tsm重新配置文档(2008 11 10)
九州通 Tsm重新配置文档(2008 11 10)
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
 
Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除
 
Squid安装配置
Squid安装配置Squid安装配置
Squid安装配置
 
5, system admin
5, system admin5, system admin
5, system admin
 
Oda安装 恢复步骤
Oda安装 恢复步骤Oda安装 恢复步骤
Oda安装 恢复步骤
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 

Más de Yiwei Ma

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconYiwei Ma
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconYiwei Ma
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconYiwei Ma
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qconYiwei Ma
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconYiwei Ma
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qconYiwei Ma
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qconYiwei Ma
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qconYiwei Ma
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconYiwei Ma
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qconYiwei Ma
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qconYiwei Ma
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconYiwei Ma
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qconYiwei Ma
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qconYiwei Ma
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qconYiwei Ma
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011Yiwei Ma
 

Más de Yiwei Ma (20)

Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
 
Taobao practice-liyu-qcon
Taobao practice-liyu-qconTaobao practice-liyu-qcon
Taobao practice-liyu-qcon
 
Thoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qconThoughtworks practice-hukai-qcon
Thoughtworks practice-hukai-qcon
 
Ufida design-chijianqiang-qcon
Ufida design-chijianqiang-qconUfida design-chijianqiang-qcon
Ufida design-chijianqiang-qcon
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
Netflix web-adrian-qcon
Netflix web-adrian-qconNetflix web-adrian-qcon
Netflix web-adrian-qcon
 
Google arch-fangkun-qcon
Google arch-fangkun-qconGoogle arch-fangkun-qcon
Google arch-fangkun-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Alibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qconAlibaba arch-jiangtao-qcon
Alibaba arch-jiangtao-qcon
 
Twitter keynote-evan-qcon
Twitter keynote-evan-qconTwitter keynote-evan-qcon
Twitter keynote-evan-qcon
 
Netflix keynote-adrian-qcon
Netflix keynote-adrian-qconNetflix keynote-adrian-qcon
Netflix keynote-adrian-qcon
 
Facebook keynote-nicolas-qcon
Facebook keynote-nicolas-qconFacebook keynote-nicolas-qcon
Facebook keynote-nicolas-qcon
 
Domainlang keynote-eric-qcon
Domainlang keynote-eric-qconDomainlang keynote-eric-qcon
Domainlang keynote-eric-qcon
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
 
Baidu keynote-wubo-qcon
Baidu keynote-wubo-qconBaidu keynote-wubo-qcon
Baidu keynote-wubo-qcon
 
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011淘宝线上线下性能跟踪体系和容量规划-Qcon2011
淘宝线上线下性能跟踪体系和容量规划-Qcon2011
 

Mysql mmm安装指南(翻译)

  • 1. mysql-mmm 安装指南 注意:本指南只是一个草稿,如果你觉得有些地方需要改善、 扩展或者修正的话, 你可以随意更改。本指南所描述的是基于 Debian Lenny (5.0)平台的 mysql- mmm2 的安装(不包含 mmm tools)。 一个最基本的安装必须至少包含 2 个数据库服务器和一个监控服务器,在这个 指南中,我用了 5 台基于 Debian Lenny (5.0)平台的服务器 function ip hostname serveri d Monitoring host 192.168.100.100 mon - master 1 192.168.100.101 db1 1 master 2 192.168.100.102 db2 2 slave 1 192.168.100.103 db3 3 slave 2 192.168.100.104 db4 4 我用了以下的虚拟 IP,他们将会在被 mmm 分配 ip role description 192.168.100.200 writer 你的应用程序应该连接到这个 ip 进行写操作 192.168.100.201 reader 你的应用程序应该链接到这些 ip 中的一个进行 192.168.100.202 reader 读操作 192.168.100.203 reader 192.168.100.204 reader Master1 的基本配置 首先我们在所有的主机上安装 mysql aptitude install mysql-server 然后我们修改/etc/mysql/my.cnf 文件的配置,加入以下行,确保所有的主机使用的不同的 server id: server_id =1 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index expire_logs_days = 10 max_binlog_size = 100M log_slave_updates = 1 read_only =1
  • 2. 删除下面这行: bind-address = 127.0.0.1 当然要配置绑定到你的 ip 上: bind-address = <your_IP_address> 然后为了让我们更改的配置文件生效需要重启下 mysql 服务: /etc/init.d/mysql restart 创建用户 现在我们来创建需要的用户,我们需要创建 3 个不同的用户 功能 描述 权限 monitor user mmm 监控用于对 mysql 服务 REPLICATION CLIENT 器进程健康检查 agent user mmm 代 理 用 来 更 改 只 读 模 SUPER, REPLICATION 式,复制的主服务器等等 CLIENT, PROCESS relication user 用于复制 REPLICATION SLAVE 创建用户语句的代码如下: GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'192.168.0.%' IDENTIFIED BY 'monitor_password'; GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'192.168.0.%' IDENTIFIED BY 'agent_password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED BY 'replication_password'; 注意:就以上这些允许用户连接的主机而言我们可以设置更多的限制,比如 mmm 监控主 机是从 192.168.0.10 连接的,mmm 代理和复制是从 192.168.0.11 - 192.168.0.14 连接的, 服务器之间的数据同步 我们假定 db1 上的数据是正确的。 假如你有一个空的数据库,你仍然需要同步我们刚才创建 的些帐号。 首先,当我们创建备份的过程中必须保证没有人更改数据库上的数据: (db1) mysql> FLUSH TABLES WITH READ LOCK;
  • 3. 然后获取二进制日志文件目前的位置,我们一会在设置 db2、db3 和 db4 主从复制的时候要 用到: (db1) mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 374 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 先不要关闭这个 mysql 命令行模式。 假如你关闭了它,那么刚才设置的数据库锁 定就会被解锁,因此你需要再开启一个终端,并输入: db1$ mysqldump -u root -p --all-databases > /tmp/database-backup.sql 现在我们可以对数据库解除锁定了,在上面第一个 mysql 命令行输入: (db1) mysql> UNLOCK TABLES; 复制刚才的数据库备份到 db2, db3 and db4: db1$ scp /tmp/database-backup.sql <user>@192.168.0.12:/tmp db1$ scp /tmp/database-backup.sql <user>@192.168.0.13:/tmp db1$ scp /tmp/database-backup.sql <user>@192.168.0.14:/tmp 然后将备份导入到 db2, db3 and db4: db2$ mysql -u root -p < /tmp/database-backup.sql db3$ mysql -u root -p < /tmp/database-backup.sql db4$ mysql -u root -p < /tmp/database-backup.sql 然后刷新 db2, db3 and db4 的权限,我们更改了 user 表,所以 mysql 要重新读取这个表 (db2) mysql> FLUSH PRIVILEGES; (db3) mysql> FLUSH PRIVILEGES; (db4) mysql> FLUSH PRIVILEGES; 在 debian 和 ubuntu 中,从 db1 复制/etc/mysql/debian.cnf 文件中的密码到 db2、db3 和 db4, 这个密码是用来启动和停止数据库的 现在所有的数据库的数据都是一致的了,我们可以开始设置主从复制来保持数据一致的状 况了! 设置同步
  • 4. 通过下面的命令设置在 db2, db3 和 db4 上的复制 (db2) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>; (db3) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>; (db4) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>; 请在<file> 和 <position>上插入我们前面在 db1 上用“show master status”看到的二进制日志 文件名和二进制日志的位置。 然后用以下命令启动 3 个主机上的 slave 进程 (db2) mysql> START SLAVE; (db3) mysql> START SLAVE; (db4) mysql> START SLAVE; 现在用一下命令检查所有主机上的复制是否正常 (db2) mysql> SHOW SLAVE STATUSG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.11 Master_User: replication Master_Port: 3306 Connect_Retry: 60 … (db3) mysql> SHOW SLAVE STATUSG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.11 Master_User: replication Master_Port: 3306 Connect_Retry: 60 … (db4) mysql> SHOW SLAVE STATUSG *************************** 1. row ***************************
  • 5. Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.11 Master_User: replication Master_Port: 3306 Connect_Retry: 60 现在我们要设置 db1 从 db2 上复制,首先我们要确定 master_log_file 和 master_log_pos 的 值: (db2) mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 98 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 我们用下面的命令配置 db1 上的复制: (db1) mysql> CHANGE MASTER TO master_host = '192.168.0.12', master_port=3306, master_user='replication',master_password='replication_password',master_log_file='<file>', master_log_pos=<position>; 请在<file> 和 <position>上插入我们前面在 db2 上用“show master status”看到的二进制日志 文件名和二进制日志的位置。 启动从进程 (db1) mysql> START SLAVE; 检查 db1 上的复制是否正常 (db1) mysql> SHOW SLAVE STATUSG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.12 Master_User: <replication> Master_Port: 3306 Connect_Retry: 60 … 所有的复制应该已经 ok 了,试着在 db1 和 db2 上插入数据,然后看看会不会同 步更新到所有的节点上去。
  • 6. MMM 安装 创建用户 可选的:创建 MMM 脚本和配置文件的所有者,这将能为安全地管理监控脚本提 供更简单的方法。 useradd --comment "MMM Script owner" --shell /sbin/nologin mmmd 监控主机 首先安装依存包: aptitude install liblog-log4perl-perl libmailtools-perl liblog-dispatch-perl libclass-singleton-perl libproc-daemon-perl libalgorithm-diff-perl libdbi-perl libdbd-mysql-perl 接下来取得最新版本的 mysql-mmm-common*.deb 和 mysql-mmm-monitor*.deb 文件,并安 装它们: dpkg -i mysql-mmm-common_*.deb mysql-mmm-monitor*.deb 数据库主机 首先安装依存包: aptitude install liblog-log4perl-perl libmailtools-perl liblog-dispatch-perl iproute libnet-arp-perl libproc-daemon-perl libalgorithm-diff-perl libdbi-perl libdbd-mysql-perl 接下来取得最新版本的 mysql-mmm-common*.deb 和 mysql-mmm-agent*.deb 文件,并安装 它们: dpkg -i mysql-mmm-common_*.deb mysql-mmm-agent_*.deb 配置 MMM 所有的配置选项都集合在了一个叫 /etc/mysql-mmm/mmm_common.conf 的单独文件中,系 统中所有主机的该文件内容都是一样的: active_master_role writer
  • 7. <host default> cluster_interface eth0 pid_path /var/run/mmmd_agent.pid bin_path /usr/lib/mysql-mmm/ replication_user replication replication_password replication_password agent_user mmm_agent agent_password agent_password </host> <host db1> ip 192.168.100.101 mode master peer db2 </host> <host db2> ip 192.168.100.102 mode master peer db1 </host> <host db3> ip 192.168.100.103 mode slave </host> <host db4> ip 192.168.100.104 mode slave </host> <role writer> hosts db1, db2 ips 192.168.100.200 mode exclusive </role> <role reader> hosts db1, db2, db3, db4 ips 192.168.100.201, 192.168.100.202, 192.168.100.203, 192.168. 100.204
  • 8. mode balanced </role> 不要忘记了拷贝这个文件到所有的主机(包括监控主机)! 在数据库主机上 我们需要编辑 /etc/mysql-mmm/mmm_agent.conf 文件,根据其他主机的不同更改 db1 的值 (db2 就将 db1 更改成 db2): include mmm_common.conf this db1 在监控主机上 我们需要编辑/etc/mysql-mmm/mmm_mon.conf 文件: include mmm_common.conf <monitor> ip 127.0.0.1 pid_path /var/run/mmmd_mon.pid bin_path /usr/lib/mysql-mmm/ status_path /var/lib/misc/mmmd_mon.status ping_ips 192.168.100.100, 192.168.100.101, 192.168.100.102, 192.168.100.103, 192.168.100.104 </monitor> <host default> monitor_user mmm_monitor monitor_password monitor_password </host> debug 0 ping_ips 选项是通过 ping 这些 ip 来确认监控机的网络连接是正常的,我配置的是我的交换 机(192.168.0.1)和其他四台数据库服务器。 启动 MMM 启动代理 在数据库服务器上 编辑/etc/default/mysql-mmm-agent 来开启代理
  • 9. ENABLED=1 然后启动它: /etc/init.d/mysql-mmm-agent start 启动监控 在监控服务器上 编辑/etc/default/mysql-mmm-monitor 文件来开启监控 ENABLED=1 然后启动它: /etc/init.d/mysql-mmm-monitor start 等待几秒钟 mmmd_mon 启动,在几秒钟后你可以用 mmm_control 来检查群集的状态 mon$ mmm_control show db1(192.168.0.11) master/AWAITING_RECOVERY. Roles: db2(192.168.0.12) master/AWAITING_RECOVERY. Roles: db3(192.168.0.13) slave/AWAITING_RECOVERY. Roles: db4(192.168.0.14) slave/AWAITING_RECOVERY. Roles: 因为这是第一次启动,所以我们的监控还不知道我们的主机,因此会设置所有主机的状态 为 AWAITING_RECOVERY 并且会记录一条警告信息! mon$ tail /var/log/mysql-mmm/mmmd_mon.warn … 2009/10/28 23:15:28 WARN Detected new host 'db1': Setting its initial state to 'AWAITING_RECOVERY'. Use 'mmm_control set_online db1' to switch it online. 2009/10/28 23:15:28 WARN Detected new host 'db2': Setting its initial state to 'AWAITING_RECOVERY'. Use 'mmm_control set_online db2' to switch it online. 2009/10/28 23:15:28 WARN Detected new host 'db3': Setting its initial state to 'AWAITING_RECOVERY'. Use 'mmm_control set_online db3' to switch it online. 2009/10/28 23:15:28 WARN Detected new host 'db4': Setting its initial state to 'AWAITING_RECOVERY'. Use 'mmm_control set_online db4' to switch it online. 现在我们设置我们的主机为在线状态( db1 最先,因为其他的主机是从 db1 复制更新 的!):
  • 10. mon$ mmm_control set_online db1 OK: State of 'db1' changed to ONLINE. Now you can wait some time and check its new roles! mon$ mmm_control set_online db2 OK: State of 'db2' changed to ONLINE. Now you can wait some time and check its new roles! mon$ mmm_control set_online db3 OK: State of 'db3' changed to ONLINE. Now you can wait some time and check its new roles! mon$ mmm_control set_online db4 OK: State of 'db4' changed to ONLINE. Now you can wait some time and check its new roles! 官方文档链接:http://mysql-mmm.org/mmm2:guide