MySQL 主主复制

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:
2016-03-16 19:13 by pursuer.chen, 311 阅读, 0 评论, 收藏, 编辑

介绍

环境

OS:CentOS 6.7,MySQL 5.6

Master:192.168.137.10  hosts:master

Backup:192.168.137.20 hosts:slave

VIP:192.168.137.50

 

Master配置

修改cnf配置文件:

复制代码
server_id =10

log_bin=/usr/local/mysql/data/mysql_bin

max_binlog_size = 1G

binlog_format=MIXED

#binlog-do-db=

binlog-ignore-db=test #这里记住不要加入系统数据库,多个数据库以逗号隔开

#replicate-do-db=

replicate-ignore-db=test

log-slave-updates

slave-skip-errors=all

auto_increment_increment=2

auto_increment_offset=1
复制代码

重启mysql

Service mysql restart

查看binglog位置

SHOW MASTER STATUS

由于是刚创建默认是:mysql_bin.000001:120

创建复制用户:

mysql –uroot -proot

GRANT  REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.%' IDENTIFIED  BY 'repl';
复制代码
flush  privileges;

change master to 

master_host = '192.168.137.20', 

master_user = 'repl', 

master_password = 'repl', 

master_log_file = 'mysql_bin.000001',  #注意binlog的命名

master_log_pos = 120;
复制代码

启动复制,先在132上创建完复制用户再执行

start slave;

Backup配置

复制代码
server_id =20

log_bin=/usr/local/mysql/data/mysql_bin

max_binlog_size = 1G

binlog_format=MIXED

#binlog-do-db=

binlog-ignore-db=test

#replicate-do-db=

replicate-ignore-db=test #这里记住不要加入系统数据库,多个数据库以逗号隔开

log-slave-updates

slave-skip-errors=all

auto_increment_increment=2

auto_increment_offset=2
复制代码

重启mysql

Service mysql restart

查看binglog位置

SHOW MASTER STATUS

由于是刚创建默认是:mysql_bin.000001:120

 

创建复制用户:mysql –uroot -proot

GRANT  REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.%' IDENTIFIED  BY 'repl';
复制代码
flush  privileges;

change master to 

master_host = '192.168.137.10', 

master_user = 'repl', 

master_password = 'repl', 

master_log_file = 'mysql-bin.000001',  #注意binlog的命名

master_log_pos = 120;

 
复制代码

启动复制

start slave;

master keeplived安装配置

通过keeplived管理虚拟IP,并执行故障切换。

复制代码
yum install openssl openssl-devel -y

wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

tar -xvf keepalived-1.2.19.tar.gz

cd keepalived-1.2.19

./configure --prefix=/usr/local/keepalived

make && make install
复制代码

配置启动项

复制代码
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/bin/
复制代码

keepalived配置

master

vim /etc/keepalived/keepalived.conf

复制代码
#! Configuration File forkeepalived
global_defs {
notification_email {
test@163.com
 }
notification_email_from  ha@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL      #组标识,双主相同
 }
vrrp_instance VI_1 {
 state BACKUP           #两台都设置BACKUP
 interface eth0
 virtual_router_id 51       #主备相同
 priority 100           #优先级,backup设置120 master设置150
 advert_int 1
 nopreempt             #不主动抢占资源,两台都设置
 authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 192.168.137.50  #虚拟IP
 }
}
virtual_server 192.168.137.50 3306 {
 delay_loop 2
 #lb_algo rr              #LVS算法,用不到,我们就关闭了
 #lb_kind DR              #LVS模式如果不关闭备用服务器不能通过VIP连接主MySQL
 persistence_timeout 50  #同一IP的连接60秒内被分配到同一台真实服务器
 protocol TCP
 real_server 192.168.137.10 3306 { #检测本地mysql,backup也要写检测本地mysql
 weight 3
 notify_down /usr/local/keepalived/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换
 TCP_CHECK {
 connect_timeout 3    #连接超时
 nb_get_retry 3       #重试次数
 delay_before_retry 3 #重试间隔时间

  }
}
}
复制代码

 

backup

vim /etc/keepalived/keepalived.conf

复制代码
#! Configuration File forkeepalived
global_defs {
notification_email {
test@163.com
 }
notification_email_from  ha@163.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL      #组标识,双主相同
 }
vrrp_instance VI_1 {
 state BACKUP           #两台都设置BACKUP
 interface eth0
 virtual_router_id 51       #主备相同
 priority 90           #优先级,backup设置120 master设置150
 advert_int 1
 authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 192.168.137.50
 }
}

virtual_server 192.168.137.50 3306 {
delay_loop 2
 #lb_algo rr              #LVS算法,用不到,我们就关闭了
 # #lb_kind DR              #LVS模式如果不关闭备用服务器不能通过VIP连接主MySQL
persistence_timeout 50  #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.137.20 3306 { #检测本地mysql,backup也要写检测本地mysql
weight 3
notify_down /usr/local/keepalived/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换
TCP_CHECK {
connect_timeout 3    #连接超时
nb_get_retry 3       #重试次数
delay_before_retry 3 #重试间隔时间

     }
   }
 }
复制代码

注意:nopreempt(不主动抢占)针对优先级高的一方是有效的;如果不使用 nopreempt 那么优先级高的服务器每次重启都会把VIP抢占过去,这样会导致VIP频繁切换。正常情况下VIP切换到了哪一台服务器就把那台作为主不需要再抢占回去,目前测试nopreempt针对优先级低的一方没有效果,优先级低的不加上该参数也不会把优先级高的VIP抢占走。   

将keepalived加入系统启动项

chkconfig --add keepalived

chkconfig  keepalived on

vim /usr/local/keepalived/mysql.sh

#!/bin/bash

pkill keepalived

修改文件可执行权限

chmod +x /usr/local/keepalived/mysql.sh

启动Keepalived

service keepalived start

查看VIP状态

ip add

注意:在文件配置中使用备注千万要注意,要确保你的备注被识别为备注,之前就遇到过这样的问题在代码后使用#备注由于#和实际的代码挨在一起被程序当成了代码导致整个配置出现了问题,特别是这种问题很难找,所以代码中使用备注千万要小心。

总结

 






本文转自pursuer.chen(陈敏华)博客园博客,原文链接:http://www.cnblogs.com/chenmh/p/5153184.html,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 关系型数据库 MySQL
面试官:说一下MySQL主从复制的原理?
面试官:说一下MySQL主从复制的原理?
358 0
面试官:说一下MySQL主从复制的原理?
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
2000 0
|
SQL 关系型数据库 MySQL
MySQL中主从复制的原理和配置命令
要原因包括提高性能、实现高可用性、数据备份和灾难恢复。了解两大线程( I/O 和 SQL)I/O线程:目的:I/O线程主要负责与MySQL服务器之外的其他MySQL服务器进行通信,以便复制(replication)数据。 功能: 当一个MySQL服务器作为主服务器(master)时,I/O线程会将变更日志(binary log)中的事件传输给从服务器(slave)。从服务器上的I/O线程负责接收主服务器的二进制日志,并将这些事件写入本地的中继日志(relay log)。 配置: 在MySQL配置文件中,你可以通过配置参数如和来启用二进制日志和指定服务器ID。log-bin server
269 1
MySQL中主从复制的原理和配置命令
|
关系型数据库 MySQL 数据库
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
随着数据量增长和业务扩展,单个数据库难以满足需求,需调整为集群模式以实现负载均衡和读写分离。MySQL主从复制是常见的高可用架构,通过binlog日志同步数据,确保主从数据一致性。本文详细介绍MySQL主从复制原理及配置步骤,包括一主二从集群的搭建过程,帮助读者实现稳定可靠的数据库高可用架构。
754 9
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
|
SQL 存储 关系型数据库
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制
MySQL主从复制 作用、原理—主库线程、I/O线程、SQL线程;主从同步要求,主从延迟原因及解决方案;数据一致性,异步复制、半同步复制、组复制
1399 11
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
1615 1
MySQL主从复制原理和使用
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
460 0
Mysql中搭建主从复制原理和配置
|
关系型数据库 MySQL Java
|
SQL 关系型数据库 MySQL
说一下MySQL主从复制的原理?
【8月更文挑战第24天】说一下MySQL主从复制的原理?
196 0
|
负载均衡 关系型数据库 MySQL
MySQL 主主复制与主从复制对比
MySQL的主主复制和主从复制是两种常见的数据库复制配置方式,各有优缺点和适用场景。以下是对这两种复制方式的详细对比: ### 主从复制 (Master-Slave Replication) **特点:** 1. **单向复制**:数据从主服务器复制到一个或多个从服务器。从服务器只能从主服务器接收数据更新,不能向主服务器发送数据。 2. **读写分离**:主服务器处理写操作(INSERT、UPDATE、DELETE),从服务器处理读操作(SELECT),可以分担读负载,提高系统的整体性能。 3. **数据一致性**:数据在主服务器上是最新的,从服务器上可能会有一定的延迟。 **优点:**
1171 1

推荐镜像

更多