mysql双主同步

在实际项目中,两台分布于异地的主机上安装有MYSQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MYSQL的同步功能实现双机的同步复制。

1、数据库同步设置

  主机操作系统:centos

  数据库版本:mysql Ver 14.12 Distrib 5.0.22

  前提:MYSQL数据库正常启动

  假设两台主机地址分别为:

ServA:192.168.0.101  ServB:192.168.0.203

Iptables 开发3306端口

1.1 配置同步账号

在ServA上授权一个ServB可以登录的帐号:

GRANT all privileges ON *.* TO [email protected]‘192.168.0.203‘ IDENTIFIED BY ‘123456‘;

在ServB上授权一个ServA可以登录的帐号:

GRANT all privileges ON *.* TO [email protected]‘192.168.0.101‘ IDENTIFIED BY ‘123456‘;

1.2 配置数据库参数

  1、 以root用户登录ServA,修改ServA的my.cnf文件

  vi /etc/my.cnf

  在[mysqld]的配置项中增加如下配置:

default-character-set=utf8

log-bin=mysql-bin

relay-log=relay-bin

relay-log-index=relay-bin-index

server-id=1

master-host=192.168.0.203

master-user=root

master-password=123456

master-port=3306

master-connect-retry=30

binlog-do-db=abc

replicate-do-db=abc

replicate-ignore-table=umsdb.boco_tb_menu

replicate-ignore-table=umsdb.boco_tb_connect_log

replicate-ignore-table=umsdb.boco_tb_data_stat

replicate-ignore-table=umsdb.boco_tb_log_record

replicate-ignore-table=umsdb.boco_tb_workorder_record

2、以root用户登录ServB,修改ServB的my.cnf文件

  vi /etc/my.cnf

在[mysqld]的配置项中增加如下配置:

default-character-set=utf8

log-bin=mysql-bin

relay-log=relay-bin

relay-log-index=relay-bin-index

server-id=2

master-host=192.168.0.101

master-user=root

master-password=123456

master-port=3306

master-connect-retry=30

binlog-do-db=abc

replicate-do-db=abc

replicate-ignore-table=umsdb.boco_tb_menu

replicate-ignore-table=umsdb.boco_tb_connect_log

replicate-ignore-table=umsdb.boco_tb_data_stat

replicate-ignore-table=umsdb.boco_tb_log_record

replicate-ignore-table=umsdb.boco_tb_workorder_record

1.3 手工执行数据库同步

  假设以ServA为主服务器,在ServB上重启mysql:

  service mysqld restart

  在ServB上用root用户登录mysql,执行:

  Mysql> stop slave;

  Mysql> load data from master;

  Mysql> start slave;

  在ServA上重启mysql:

  service mysqld restart

  1.4 查看数据库同步状态

  在mysql命令提示符下执行:

  Mysql> show slave status\G

将显示同步进程的状态,如下所示,如果都为yes表示正常;

3、 数据库同步测试

  配置完数据库后进行测试,首先在网络正常情况下测试,在ServA上进行数据库操作,和在ServB上进行数据库操作,数据都能够同步过去。

  拔掉ServB主机上的网线,然后在ServA上做一些数据库操作,之后再恢复ServB的网络环境,但是在ServB上却看不到同步的数据,通过命令show slave status\G查看发现Slave_IO_Running的状态是No,这种状态持续很长一段时间,数据才能同步到ServB上去。这是什么问题呢?同步延迟不会这么大吧。后来通过网上查找相关资料,找到一个同步延迟相关的参数:

  --slave-net-timeout=seconds

  参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据。

  于是在配置文件中增加该参数,设置为60秒

  slave-net-timeout=60

  重启MYSQL数据库后测试,该问题解决。

mysql双主同步,布布扣,bubuko.com

时间: 2024-07-30 10:18:39

mysql双主同步的相关文章

CentOS-7.5 搭建 MySQL 双主

MySQL双主:两台MySQL服务器互为主从 一.实验环境两台同样配置的CentOS-7.5虚拟机:两台虚机的防火墙+selinux均关闭:两台虚机均可以上外网:master_a:CentOS-1(192.168.218.128)master_b:CentOS-2 (192.168.218.136) 二.安装MySQL服务 1)两台服务器同时安装MySQL服务说明:因为本人之前已经写过"CentOS-7.5 安装 社区版 MySQL-5.7"这样的博文,所以在此就不在做重复性动作了:两

MariaDB、MySQL双主互备模型同步数据

MySQL双主互备即两台MySQL服务器同时是主服务器,而同时又是对方的从服务器,这样可以分担主服务器的一部分写请求,因为如果是单主模型的话数据写入只能写入在一台MySQL服务器,而双主模型则可同时写在两台服务器上,有效加快了写入的速度,而且还能提供数据的备份功能. 环境如下: server1:CentOS 6.5 x86_64 mariadb 10.0.10 IP:192.168.10.204 server2:CentOS 6.5 x86_64 mariadb 10.0.10  IP:192.

Mysql DBA 高级运维学习笔记-mysql双主及多主同步过程

1.Mysql双主及多主同步实战,互为主从 使用主主前提: a.表的主键自增(M库id1,3,5:M库id 2,4,6) 准备:两台机器,这里用多实例来讲解 第一台: Ip:192.168.1.115Port:3306 第二台: Ip:192.168.1.115Port:3307 1.1 第一台机器的操作 (1)配置3306的my.cnf配置文件添加打开下面参数 [[email protected] ~]# egrep "\[mysqld]|auto_increment|log-bin|log-

MySQL运维进阶-MySQL双主(master-master)+半同步(Semisync Repl

MySQL --> MariaDB --> Percona-Server MySQL: oracle ,commutity : 社区版 5.5 5.6 5.7 8.0MariaDB:5.5 10.xPercona:Percona-ServerInnoDB --> XtraDBXtrabackuppercona-tools: 存储引擎:引擎:也称为表类型,表级别概念,不建议在同一个库中的表上使用不同的ENGINE:CREATE TABLE ... ENGINE STORAGE_ENGINE

MySQL双主(主主)架构方案

在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

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

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.

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

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