mysql双主怎么用 mysql双主架构

Mysql的双主模式

Keepalived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议的一款高可用软件。Keepailived有一台主服务器(master)和多台备份服务器(backup),在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

为五龙口等地区用户提供了全套网页设计制作服务,及五龙口网站建设行业解决方案。主营业务为网站建设、做网站、五龙口网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

1.有一个错误:

2020-12-08T17:24:00.656737Z 9 [ERROR] Slave I/O for channel '': Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593

解决办法,修改其中一台服务器的server-uuid,并保证server-uuid的格式正确,修改完成之后重启Mysql服务就可以了。

在修改配置文件之前,先登录Mysql客户端查看uuid,把返回的uuid复制,放到要修改的配置文件即可。

mysql双主配置-双主带来的管理思考

mysql双主配置很简单,似乎大家都只关心他的安装和部署,大家可以用他来做双活的方案,并没有深刻的思考过生产环境后续管理的风险和如何规避这些问题。

log-slave-updates = true

auto_increment_offset = 1 #另外一个主B是2,其他一样。

auto_increment_increment = 2

replicate-ignore-db = mysql

replicate-ignore-db = sys

replicate-ignore-db = information_schema

replicate-ignore-db = performance_schema

replicate-ignore-db = undolog

replicate_wild_ignore_table = mysql.%

replicate_wild_ignore_table = sys.%

replicate_wild_ignore_table = information_schema.%

replicate_wild_ignore_table = performance_schema.%

replicate_wild_ignore_table = undolog.%

双主如果一边更新表结构,一边在写入,即使你认为你的的sql没有问题。但是mysqlbinlog的写入日志不是这样的,比如row格式,需要回放的日志如下下面,你修改表结构之前是可以插入的,中间查多一列的话,你的列对不上了,导致1167错误。目前有两种办法可以规避这个问题:

如果忽略了一些库,比如mysql的库,创建账号的时候,就需要两边创建。

如何配置两个MySQL数据库之间的主从同步功能?

IP的设置:A主机 IP:10.10.0.119;Mask:255.255.0.0;B主机 IP:10.10.8.112;Mask:255.255.0.0

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态。

为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。

3.2 配置A主(master) B从(slave)模式;3.2.1 配置A 为master。

增加一个用户同步使用的帐号:

GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;

GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’。

赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

增加一个数据库作为同步数据库:create database test;

创建一个表结构:create table mytest (username varchar(20),password varchar(20));

修改配置文件:修改A的/etc/my.cnf文件。

在my.cnf配置项中加入下面配置:

server-id = 1 #Server标识

log-bin

binlog-do-db=test #指定需要日志的数据库

重起数据库服务:

service mysqld restart

查看server-id:

show variable like ‘server_id’。

mysql keepalive+ 双主多从是怎么做的

我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换。使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查、失败切换机制,从而实现MySQL数据库的高可用方案。之前梳理了Mysql主从/主主同步,下面说下Mysql+keeoalived双主热备高可用方案的实施。

Keepalived看名字就知道,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导

整个系统架构的不可用)的发生,那说到keepalived不得不说的一个协议不是VRRP协议,可以说这个协议就是keepalived实现的基础。

1)Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。

2)VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。

Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继

续工作,来保障不间断服务。


标题名称:mysql双主怎么用 mysql双主架构
地址分享:http://pwwzsj.com/article/dojcjsp.html