mysql主主互备架构

企业级mysql集群具备高可用,可扩展性,易管理,低成本的特点。mysql主主互备就是企业中常用的一个解决方案。在这种架构中,虽然互为主从,但同一时刻只有一台mysql 可读写,一台mysqk只能进行读操作

1.配置

环境: DB1(master)  mysql-5.1.73-3.el6_5.x86_64   192.168.32.130

DB2 (slave)    mysql-5.1.73-3.el6_5.x86_64    192.168.32.129

mysql vip : 192.168.32.100

安装

yum -y install mysql mysql-devel

/etc/init.d/mysqld start

修改mysql配置文件

DB1配置

[mysqld]

server-id=1

log-bin=mysql-bin

relay-log=mysql-relay-bin

replicate-wild-ignore-table=mysql.%

replicate-wild-ignore-table=test.%

replicate-wild-ignore-table=information_schema.%

DB2配置

[mysqld]

server-id=2

log-bin=mysql-bin

relay-log=mysql-relay-bin

replicate-wild-ignore-table=mysql.%

replicate-wild-ignore-table=test.%

replicate-wild-ignore-table=information_schema.%

server-id:节点标识,主从不能相同,必须全局唯一。log-bin是mysql的binlog日志功能,mysql-bin表示日志文件的命名格式。relay-log定义relay-log日志文件的命名格式。replicate-wild-ignore-table是个复制过滤选项,可以过滤不需要复制的数据库或表。

慎用binlog-do-db(记录日志的数据库)和binlog-ignore-db(是不要记录日志的数据库名,多个数据库中间用逗号逗号隔开;),replicate-do-db(可以指定只复制哪个库的数据),replicate-ignore-db( 过滤不是基于 查询的字符串的, 而是基于你used的数据库)

建议用replicate-wild-ignore-table和replicate-wild-do-table

为什么 MySQL的 binlog-do-db 选项是危险的-bingqihan-ChinaUnix博客

http://blog.chinaunix.net/uid-24500107-id-2602925.html

创建复制用户并授权

在DB1mysql库中创建复制用户

grant replication slave on *.* to ‘repl_user‘@‘192.168.32.129‘identified by ‘www.123‘;

show master status;

在DB2mysql库中将DB1设为自己的主服务器

change master tomaster_host=‘192.168.32.130‘,master_user=‘repl_user‘,master_password=‘www.123‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=342;

这边的master_log_file和master_log_pos是DB1上通过show master status查询到的结果

启动slave服务

start slave;

mysql> show slave status\G;

*************************** 1. row***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.32.130

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000002

Read_Master_Log_Pos: 342

Relay_Log_File:mysql-relay-bin.000002

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000002

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: mysql.%,test.%,information_schema.%

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 342

Relay_Log_Space: 406

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

ERROR:

No query specified

这里需要重点关注的是Slave_IO_Running和Slave_SQL_Running。这两个就是slave节点运行的主从复制线程。正常情况下这两个值都是yes

在BD2mysql库中创建复制用户

grant replication slave on *.* to‘repl_user‘@‘192.168.32.130‘ identified by ‘www.123‘;

show  masterstatus;

在DB1中将DB2设为自己的主服务器

change master tomaster_host=‘192.168.32.129‘,master_user=‘repl_user‘,master_password=‘www.123‘,master_log_file=‘mysql-bin.000005‘,master_log_pos=267;

这边的master_log_file和master_log_pos是DB2上通过show master status查询到的结果

启动slave服务

start  slave

show slave status\G;

查看slave运行状态

在DB1上创建数据库到DB2上查看,在DB2上创建数据库到DB1上查看,发现都是同步的

show variables like ‘server%‘;查看server_id

时间: 2024-10-13 17:35:48

mysql主主互备架构的相关文章

mysql系统搭建互备DB(双主)记录

背景:所负责的自动化持续交付平台业务量逐渐增长,以防不测,需要搭建备份系统,经过多方考量: 选择采取mysql的主从系统进行备份:互为主从(即所谓双主): PS: 三种备份方式: a.脚本通过mysqldump备份 ----------- 数据量少时可以采取 b.第三方工具备份 ----------- 大多数工具都是windows端的.一旦出现问题,恢复起来步骤稍多(本人比较懒,能自动化的最好都自动化) c.mysql的主从同步机制 ------------ 推荐,实时增量热备,切换时可以直接启

MySQL双主互备模式架构

MySql双主互备架构模式 操作系统 CentOS 6.3 MySql版本 mysql-5.0.56 keepalived keepalived-1.1.19.tar.gz Master DB1配置文件 修改MySql 配置文件  /etc/my.cnf 增加以下段落 [mysqld] server-id=1    节点标示 log-bin=mysql-bin   开启mysql的binlog日志功能 relay-log = mysql-relay-bin  用来定义日志文件命名格式 repli

Mysql双主互备+keeplived高可用架构(部分)

一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种架构中,主库出现故障时需要手动将一台从库提升为主库.在对写操作要求较高的环境中,主库故障在主从架构中会成为单点故障.因此需要主主互备架构,避免主节点故障造成写操作失效. 在双主互备的架构中,每台Mysql都充当主服务器,同时充当对方的从服务器.在任意一台服务器上的写操作都会被复制到另一台服务器上,从

keepalived实现mysql双主架构

5 keepalived实现mysql双主架构 5.1 架构介绍 企业级Mysql集群具备高可用.可扩展.以管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即Mysql的双主互备架构,主要设计思想是通过Mysql复制技术将两台Mysql服务器互相将对方作为自己的主服务器,自己又同时作为对方的从服务器来进行复制.这样就实现了高可用架构中的数据同步功能,同时,将采用keepalived来实现mysql的自动故障切换.在这个架构中,虽然两台Mysql服务器互为主从,但同一时刻只有一个M

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

MySQL双主+keeplived安装部署说明

MySQL双主+keeplived安装部署说明 一.环境介绍 1.1.规划 序号 类别 版本 主机名 IP 端口 备注 1 OS CentOS release 6.9 (Final) (minimal) my1 172.16.210.180 8306 172.16.210.183 2 mysql mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz my2 172.16.210.181 8306 3 keeplived keepalived-1.2.7.tar.g

mysql主主互备+原来mysql主从架构

接http://wsw26.blog.51cto.com/1442148/1749125我这个A已做了BC的主架构上增加一台D的虚拟机(同一个环境),我的目的是D和A主主互备,BC继续做A的从,既是D<-->A-->BC这样架构(类似级联的) 准备工作:(1)D的IP是192.168.0.190,A的IP是192.168.0.8,B的IP是192.168.0.140,C的IP是192.168.0.141(2)将A的mysql备份的sql通过scp传去D那里再从D那里新建对应的数据库名字后

[Mysql高可用]——双主互备+keepalived

实验架构图    实验环境 主机名 操作系统 Mysql版本 keepalived版本 主机IP VIP lyj1(Master/Slave) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.201 10.0.100.220 lyj2(Slave/Master) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.202 构建双主互备 1. 分别修改DB1和DB

mysql主主互备模式配置

本文为南非蚂蚁的书籍<循序渐进linux-第二版>-8.3.5的读笔记 mysql双主互备架构图 mysql主主互备模式配置 环境: DB1:主服务器  centos6.6  mysql5.1.73 IP:10.24.24.111 DB2:从服务器  centos6.6  mysql5.1.73 IP:10.24.24.112 mysql VIP:10.24.24.112 ---------------------------------------- centos6.x安装mysql # y