Postfix-2.11+Dovecot-2.0.9+MySQL+Cyrus-sasl+Extmail-1.2实现
----本文大纲
简介
资源配置
拓扑图
实现过程
====================
一、简介
MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。MMM不仅能提供浮动IP的功能,更可贵的是如果当前的主服务器挂掉后,会将你后端的从服务器自动转向新的主服务器进行同步复制,不用手工更改同步配置。这个方案是目前比较成熟的解决方案。
方案优缺点
优点:安全性、稳定性高,可扩展性好,高可用,当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。
缺点:至少三个节点,对主机的数量有要求,需要实现读写分离,对程序来说是个挑战。
二、资源配置
主机属性
系统名字角色主机名ip地址关系
Centos6.5x86_64DB1
Masteressun.mariadb1.com192.168.1.109与DB2互为主从
Centos6.5x86_64DB2Masteressun.mariadb2.com192.168.1.112
与DB1互为主从
Centos6.5x86_64DB3Slaveessun.mariadb3.com192.168.1.113
DB1的从库
Centos6.5x86_64MonitorMonitoressun.monitor.com192.168.1.116
监控所有主机
虚拟ip(VIP)
DB1 192.168.1.109 `192.168.1.24
DB2 192.168.1.112 192.168.1.24,192.168.1.22
DB3 192.168.1.113 192.168.1.23
三、拓扑图
#FormatImgID_0#
四、实现过程
1、配置DB1
修改配置文件/etc/my.cnf,添加如下语句
server-id=1
log_bin=/mariadb/data/mysql-bin
binlog_format=row
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
授权用户
MariaDB [(none)]> grant replication slave,replication client on *.* to \'repluser\'@\'192.168.1.112\' identified by \'replpass\';
Query OK, 0 rows affected (0.12 sec)
MariaDB [(none)]> grant replication slave,replication client on *.* to \'repluser\'@\'192.168.1.113\' identified by \'replpass\';
Query OK, 0 rows affected (0.00 sec)
查看binlog日志标记
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 756 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
2、配置DB2
修改配置文件/etc/my.cnf,添加如下语句
log-bin=mysql-bin
binlog_format=ROW
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
server-id=2
授权用户
MariaDB [(none)]> grant replication slave,replication client on *.* to \'repluser\'@\'192.168.1.109\' identified by \'replpass\';
Query OK, 0 rows affected (0.15 sec)
查看binlog日志标记
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 548 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
连接DB1
MariaDB [(none)]> change master to master_host=\'192.168.1.109\',master_user=\'repluser\',master_password=\'replpass\',master_log_file=\'mysql-bin.000003\',master_log_pos=756;
Query OK, 0 rows affected (0.06 sec)
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.06 sec)
MariaDB [(none)]> show slave statusG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.109
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 756
Relay_Log_File: essun-relay-bin.000002
Relay_Log_Pos: 535
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 756
Relay_Log_Space: 832
Until_Condition: None
Until_Log_File:
本文来源:SecYe安全网[http://www.secye.com] (责任编辑:SecYe安全)
- ·Linux通过BFO安装Fedora的步骤
- ·LAMP环境搭建以及应用之RPM包安装
- ·Ubuntu中安装中文输入法
- ·CentOS升级Python2.6到Python2.7
- ·Grub2相对Grub的一些改进和注意事项
- ·Kali-linux下安装安卓模拟器:Genymotion
- ·Kali linux_x64 安装 Compiz
- ·如何在CentOS 7 中HHVM和Nginx之上安装Wo
- ·Octovis 在Ubuntu16.04 运行出现core dum
- ·64位的 CentOS 怎么制作安装U盘
- ·in house ad hoc区别 Xcode 6.1做ipa企业
- ·如何在 CentOS 7 上安装和安全配置 Maria
- ·在 Linux 中修改 MySQL 或 MariaDB 的 Ro
- ·JavaEE开发基于Eclipse的环境搭建以及Mav
- ·如何配置Linux下的OSSIM-HIDS
- ·Memcached环境安装设置
- ·Linux通过BFO安装Fedora的步骤
- ·LAMP环境搭建以及应用之RPM包安装
- ·Ubuntu中安装中文输入法
- ·CentOS升级Python2.6到Python2.7
- ·Grub2相对Grub的一些改进和注意事项
- ·Kali-linux下安装安卓模拟器:Genymotion
- ·Kali linux_x64 安装 Compiz
- ·如何在CentOS 7 中HHVM和Nginx之上安装Word
- ·Octovis 在Ubuntu16.04 运行出现core dump
- ·64位的 CentOS 怎么制作安装U盘
- ·in house ad hoc区别 Xcode 6.1做ipa企业级
- ·如何在 CentOS 7 上安装和安全配置 MariaDB
- ·在 Linux 中修改 MySQL 或 MariaDB 的 Root
- ·JavaEE开发基于Eclipse的环境搭建以及Maven
- ·如何配置Linux下的OSSIM-HIDS
- ·hive+python数据分析入门
- ·Postfix-2.11+Dovecot-2.0.9+MySQL+Cyrus-s
- ·linux服务器如何修改root管理员密码
- ·基于Linux路由的访问控制
- ·Ubuntu变身Windows 7的小技巧
- ·CentOS 6.5安装二进制版本的MongoDB 2.6
- ·关于在CentOS上解压韩中文名的ZIP文件出现
- ·SecureCRT密钥远程登录Linux
- ·Centos上架设SVNServer服务器
- ·Linux中解决硬盘空间不足问题
- ·安装Oracle10g遭遇ins_ctx.mk问题解决方法
- ·Oracle11g RAC开启关闭、设置归档小结
- ·ubuntu上安装Apache2+ModSecurity及自定义W
- ·如何在 Linux 上安装 Minecraft 服务器
- ·CentOS7.0系统上搭建php环境(LAMP:Apache