Mysql主从复制和mysql-mmm配置使用

1.实验概述

1.主机状态


hostname


function


ip


serverid


lab1.stu21.com


monitoring host


172.16.21.101


-


lab2.stu21.com


master 1


172.16.21.102


2


lab3.stu21.com


master 2


172.16.21.103


3


lab4.stu21.com


slave 1


172.16.21.104


4

2.虚拟IP:


172.16.21.200


Writer


172.16.21.201


Reader


172.16.21.202


Reader

2.Mysql主从复制配置

分别在lab2-4安装mysql-server和mysql

# yum -y install mysql-server mysql

my.cnf配置文件

[mysql]
socket=/var/lib/mysql/mysql.sock
 
[mysqld]
datadir=/data/mydata
socket=/var/lib/mysql/mysql.sock
user=mysql
skip_name_resolv
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# Server ID
server_id = 2 #此处server_id对应第一张表中的serverid
 
# LogFile
log_bin             = /data/binlog/mysql-bin
relay_log           = /data/relaylog/mysql-relay
 
# Increment
auto_increment_increment = 2
auto_increment_offset = 1 #lab3上为2

#分别在lab2-4上进行授权

#通过MMM监视器用来检查MySQL服务器的健康
GRANT REPLICATION CLIENT                 ON *.* TO  ‘mmm_monitor‘@‘172.16.21.%‘ IDENTIFIED BY ‘123456‘;
#用MMM改变只读模式,复制,等等。
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO ‘mmm_agent‘@‘172.16.21.%‘   IDENTIFIED BY ‘123456‘;
#用于复制
GRANT REPLICATION SLAVE                  ON *.* TO ‘replication‘@‘172.16.21.%‘ IDENTIFIED BY ‘123456‘;

将数据最完整数据路上的数据进行备份,并在其他两台主机上进行恢复

#记录文件及Postion
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      420 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> FLUSH TABLES WITH READ LOCK;
#新开一个终端
[[email protected] ~]#  mysqldump -u root -p --all-databases > /tmp/database-backup.sql
[[email protected] ~]# scp /tmp/database-backup.sql 172.16.21.103:/tmp
database-backup.sql                                100%  513KB 512.9KB/s   00:00    
[[email protected] ~]# scp /tmp/database-backup.sql 172.16.21.104:/tmp
database-backup.sql                                100%  513KB 512.9K
#恢复
[[email protected] ~]# mysql </tmp/database-backup.sql 
[[email protected] ~]# mysql </tmp/database-backup.sql 
#分别在lab3和lab4将lab2设置为主服务器
mysql> CHANGE MASTER TO master_host = ‘172.16.21.102‘, master_port=3306, master_user=‘replication‘,               master_password=‘123456‘, master_log_file=‘mysql-bin.000006‘, master_log_pos=420;
mysql>  start slave;
#在lab2上,将lab3设置为主服务器
mysql> CHANGE MASTER TO master_host = ‘172.16.21.103‘, master_port=3306, master_user=‘replication‘,               master_password=‘123456‘, master_log_file=‘mysql-bin.000005‘, master_log_pos=106;

#在lab4的配置文件中,添加只读选项并重启

read_only =ON

3.安装配置mmm

1.在monitor(lab1)安装mysql-mmm

yum install -y mysql-mmm-*

2.在lab2-alb4安扎un个mysql-mmm-agent

yum install -y mysql-mmm-agent

3.编辑通用配置文件/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        replicantion
    replication_password    123456
    agent_user              mmm_agent
    agent_password          123456
</host>
 
<host lab2>
    ip      172.16.21.102
    mode    master
    peer    lab3
</host>
 
<host lab3>
    ip      172.16.21.103
    mode    master
    peer    lab2
</host>
 
<host lab4>
    ip      172.16.21.104
    mode    slave
</host>
 
<role writer>
    hosts   lab2,lab3
    ips     172.16.21.200
    mode    exclusive
</role>
 
<role reader>
    hosts   lab3,lab4
    ips     172.16.21.201,172.16.21.202
    mode    balanced
</role>

#分别在lab2-lab4上编辑vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
 
# The ‘this‘ variable refers to this server.  Proper operation requires 
# that ‘this‘ server (db1 by default), as well as all other servers, have the 
# proper IP addresses set in mmm_common.conf.
this lab3 #此处根据mmm_common.conf设置为对应hostname

#在lab2编辑监控端配置/etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf
 
<monitor>
    ip                  172.16.21.101
    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            172.16.21.102,172.16.21.103,172.16.21.104
    auto_set_online     60
    # 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    123456
</host>
debug 0

此时我们已经可以启动服务

#在lab1上启动监控端程序
[[email protected] /]# service mysql-mmm-monitor start
#在lab2-lab4上分别启动代理程序
[[email protected] /]# service mysql-mmm-agent start
 
#在lab1上查看后端状态,并设置为上线状态
[[email protected] /]# mmm_control show
[[email protected] /]# mmm_control set_online lab2
[[email protected] /]# mmm_control set_online lab3
[[email protected] /]# mmm_control set_online lab4
#再次查看,已经处于在线状态,且vip已经分配到各主机上
[[email protected] /]# mmm_control show
  lab2(172.16.21.102) master/ONLINE. Roles: writer(172.16.21.200)
  lab3(172.16.21.103) master/ONLINE. Roles: reader(172.16.21.201)
  lab4(172.16.21.104) slave/ONLINE. Roles: reader(172.16.21.202)

4.测试

通过vip访问mysql服务器,已经可以正常访问

[[email protected] /]# mysql -h172.16.21.200 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12360
.......

手动将lab2下线,测试是否仍然可以访问

[[email protected] mysql-mmm]# service mysqld stop
Stopping mysqld:                                           [  OK  ]

[[email protected] /]# mysql -h172.16.21.200 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7322
Server version: 5.1.71-log Source distribution
时间: 2024-10-12 19:20:48

Mysql主从复制和mysql-mmm配置使用的相关文章

MySQL主从复制的原理及配置

[http://www.jb51.net/article/50053.htm] MySQL 数据库的高可用性架构: 集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题. [优点] 1. 如果主服务器出现问题, 可以快速切换到从服务器提供的服务2. 可以在从服务器上执行查询操作, 降低主服务器的访问压力3. 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务注意一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询, 

MySQL主从复制----同步与异步的配置

简单来讲MySQL的主从复制就是一个C/S架构的应用.master可以认为是我们通常意义上所认为的server,slave可以当作是一台client.slave上的I/O线程去请求master上数据,而master验证通过slave的信息后就允许slave接入,然后进行数据变化信息的发送. 一.MySQL主从复制原理 这里我以MySQL5.5为例来说一下MySQL的主从复制的原理: 首先由备节点的I/O线程负责向主节点请求数据,主节点验证通过以后会由dump线程把数据发送给备用节点.备用节点的I

MySQL主从复制的原理及配置方法(比较详细)

MySQL 的数据库的高可用性的架构大概有以下几种:集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新. 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句.请注意LOAD DATA FRO

MySQL主从复制(Replication)(MySQL数据同步)配置

MySQL是开源的关系型数据库系统.复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程. 配置主服务器(master) 1.编辑数据库配置文件my.cnf,一般在/etc/目录下. #vi /etc/my.cnf 在[mysqld]的下面加入下面代码: log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1 bi

mysql主从复制 master和slave配置的参数大全

master所有参数1 log-bin=mysql-bin 1.控制master的是否开启binlog记录功能: 2.二进制文件最好放在单独的目录下,这不但方便优化.更方便维护. 3.重新命名二进制日志很简单,只需要修改[mysqld]里的log_bin选项,如下例子:要重新调整logbin的路径为"/home/mysql/binlog"[mysqld]log_bin=/home/mysql/binlog/binlog.log ll /home/mysql/binlog-rw-rw--

linux学习笔记-第二十八课-MySQL主从复制,读写分离配置

MySQL主从配置 配置准备将要配置的数据库进行主从同步,主从的服务器上都要有同一个数据库 一.配置mysql主服务器 [[email protected] ~]# vim /etc/my.cnf .................................... log-bin=mysql-bin     <== 打开日志格式 .................................... server-id=1           <== 主从标记 ............

MySQL 主从复制 + MySQL Router 部署测试

4个节点 1.MySQLDB1  192.168.1.41  (MySQL 主节点) 2.MySQLDB2  192.168.1.42  (MySQL从节点) 3.MySQLDB3  192.168.1.43  (MySQL从节点) 4.MySQLRouter  192.168.1.47  (MySQLRouter服务节点) 软件版本说明: 1.操作系统  CentOS6.6_x86_64 2.MySQLServer  5.7.16 3.MySQLRouter  2.0.4 一.部署MySQL主

mysql主从复制测试

mysql主从复制测试: 1. 配置主服务器:在主库上面添加复制账号GRANT REPLICATION SLAVE on *.* to 'mark'@'%' identified by 'mark' WITH GRANT OPTION; 在my.ini配置文件中添加配置:[mysqld]# 服务的唯一标识符server-id=1# 开启二进制日志,默认路径在data/下log-bin=mysql-bin # 二进制文件的格式 binlog_format=row 查看状态: SHOW MASTER

MySQL主从复制实现数据库服务器双机热备详细讲解

1.mysq主从复制简介 1.1.复制介绍 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新.如果你想要设置链式复制服务器,从服务器本身也可以充当主服务器.请注意当你进行复制时,所

MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结

一.主从复制搭建方法参考 1.MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解请参考: http://blog.csdn.net/xlgen157387/article/details/51331244#comments 2.使用mysqlreplicate命令快速搭建 Mysql 主从复制: http://blog.csdn.net/xlgen157387/article/details/52452394 二.Mysql 主从复制的常用拓扑结构 2.1.一主一从 是最