iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL5.7的多源复制方法
  • 262
分享到

MySQL5.7的多源复制方法

2024-04-02 19:04:59 262人浏览 泡泡鱼
摘要

本篇内容主要讲解“Mysql5.7的多源复制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql5.7的多源复制方法”吧!    &

本篇内容主要讲解“Mysql5.7的多源复制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习mysql5.7的多源复制方法”吧!

      5.7多源复制

1.1     实验概要

1.1.1  实验假设

本实验假设已经完成操作系统和Mysql安装部署。

1.1.2  实验目的

MySQL5.7的多源复制技术搭建部署,然后简单测试

1.1.3  环境信息

操作系统

MySQL版本

服务器地址

服务器角色

Centos7

5.7.18

192.168.102.23

source 1

Centos7

5.7.18

192.168.102.24

source 2

Centos7

5.7.18

192.168.102.25

target

1.1.4  实验规划

服务器地址

服务器角色

MySQL库

账户

192.168.102.23

source 1

emily

repl23

192.168.102.24

source 2

evelyn

repl24

192.168.102.25

target

 

 

source 1.emily -->target

source 2.evelyn -->target

username:

source 1:repl23

source 2:repl24

1.2     实验操作

1.2.1  源端备份数据库

分别从source1和source2分别备份出emily和evelyn库,然后分别copy到target中。其中操作步骤如下:

source 1:

##备份

[root@dsm-db-102023 11:26:50 /root]

#mysqldump -uroot –pmysql --single-transaction  --master-data=2 --databases emily > /root/dump/emily.sql

##传输

[root@dsm-db-102023 11:34:38 /root/dump]

#scp /root/dump/emily.sql  root@192.168.102.25:/root/dump/

source 2:

##备份

[root@test-mysql-10224 11:19:47 /root]

#mysqldump -uroot -pmysql  --single-transaction --master-data=2 --databases evelyn >  /root/dump/evelyn.sql

##传输

[root@dsm-db-102023 11:34:38 /root/dump]

#scp /root/dump/emily.sql  root@192.168.102.25:/root/dump/

1.2.2  创建同步账户

分别在source1和source2中创建同步账户repl23、repl24

source1

root@192.168.102.23:3306  [emily]>create user repl23 identified by "repl";

root@192.168.102.23:3306  [(none)]>grant replication slave on *.* to 'repl23'@'%';

source2

root@192.168.102.24:3306  [evelyn]>create user repl24 identified by "repl";

root@192.168.102.24:3306  [evelyn]>grant replication slave on *.* to 'repl24'@'%';

1.2.3  目标端恢复数据库

## 恢复evelyn库

root@192.168.102.25:3306  [(none)]>reset master

[root@dsm-db-102025 14:01:24 /root/dump]

#mysql -uroot -pmysql < evelyn.sql

## 查看gtid_purged

root@192.168.102.25:3306 [(none)]>show  global variables like '%gtid_purged%';

+---------------+------------------------------------------+

| Variable_name | Value                                    |

+---------------+------------------------------------------+

| gtid_purged   |  921a9068-24d2-11e7-99b5-005056b59593:1-287,

bd783f44-258f-11e7-914b-005056b5d312:1-28071  |

+---------------+------------------------------------------+

 

## 恢复emily库

root@192.168.102.25:3306  [(none)]>reset master

[root@dsm-db-102025 14:21:22 /root/dump]

#mysql -uroot -pmysql <  /root/dump/emily.sql;

##设置source1和source2的gtid_purged

root@192.168.102.25:3306 [(none)]>show  variables like '%gtid_purged%';

+---------------+------------------------------------------+

| Variable_name | Value                                    |

+---------------+------------------------------------------+

| gtid_purged   | 7937ac78-3c39-11e7-b59e-005056b5d25f:1-4  |

+---------------+------------------------------------------+

## set global gtid_purged='921a9068-24d2-11e7-99b5-005056b59593:1-287,bd783f44-258f-11e7-914b-005056b5d312:1-28071,7937ac78-3c39-11e7-b59e-005056b5d25f:1-4';

 

root@192.168.102.25:3306  [(none)]>reset master;

Query OK, 0 rows affected (0.01 sec)

 

root@192.168.102.25:3306 [(none)]>set  global  gtid_purged='921a9068-24d2-11e7-99b5-005056b59593:1-287,bd783f44-258f-11e7-914b-005056b5d312:1-28071,7937ac78-3c39-11e7-b59e-005056b5d25f:1-4';

Query OK, 0 rows affected (0.00 sec)

 

root@192.168.102.25:3306 [(none)]>show  variables like '%gtid_purged%';

+---------------+------------------------------------------------------------------------------------------------------------------------------------+

| Variable_name | Value                                                                                                                              |

+---------------+------------------------------------------------------------------------------------------------------------------------------------+

| gtid_purged   |  7937ac78-3c39-11e7-b59e-005056b5d25f:1-4,

921a9068-24d2-11e7-99b5-005056b59593:1-287,

bd783f44-258f-11e7-914b-005056b5d312:1-28071  |

+---------------+------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.01 sec)

 

root@192.168.102.25:3306 [(none)]>

1.2.4  修改MySQL存储方式

修改MySQL存储master-info和relay-info的方式,即从文件存储改为表存储

## 在线修改

STOP SLAVE;

SET GLOBAL master_info_repository =  'TABLE';

SET GLOBAL relay_log_info_repository =  'TABLE';

##修改配置文件

[mysqld]

master_info_repository=TABLE

relay_log_info_repository=TABLE

1.2.5  同步操作

?  change master

登录slave进行同步操作,分别change master到两台master主机,多源复制需要标注

FOR CHANNEL ‘CHANNEL_NAME’区分

##source  1

root@192.168.102.25:3306  [(none)]>CHANGE MASTER TO  MASTER_HOST='192.168.102.23',MASTER_USER='repl23',  MASTER_PASSWord='repl',master_auto_position=1 FOR CHANNEL 'repl23';

##source  2

root@192.168.102.25:3306  [(none)]>CHANGE MASTER TO  MASTER_HOST='192.168.102.24',MASTER_USER='repl24',  MASTER_PASSWORD='repl',master_auto_position=1 FOR CHANNEL 'repl24';

?  启动slave

启动所有同步: start slave;

启动单个同步: start slave for channel ‘channel_name’;

##启动source 1

root@192.168.102.25:3306  [(none)]>start slave for channel 'repl23';

##启动source 2

root@192.168.102.25:3306  [(none)]>start slave for channel 'repl24';

?  检查slave状态

检查所有slave: show slave status\G;

检查单个slave: show slave status for chennel ‘channel_name’\G;

## source 1

##source 1

root@192.168.102.23:3306  [emily]>insert into emily(id,name)values(2,'evelyn');

Query OK, 1 row affected (0.00 sec)

 

root@192.168.102.23:3306  [emily]>select * from emily;

+------+--------+

| id    | name   |

+------+--------+

|     1 | emily  |

|     2 | evelyn |

+------+--------+

2 rows in set (0.00 sec)

 

##target验证

 

root@192.168.102.25:3306  [emily]>select * from emily;

+------+--------+

| id    | name   |

+------+--------+

|     1 | emily  |

|     2 | evelyn |

+------+--------+

2 rows in set (0.00 sec)

 

## source 2

root@192.168.102.24:3306  [evelyn]>insert into evelyn(id,name)values(2,'emily');

Query OK, 1 row affected (1.00 sec)

 

root@192.168.102.24:3306  [evelyn]>select * from evelyn;

+------+--------+

| id    | name   |

+------+--------+

|     1 | evelyn |

|     2 | emily  |

+------+--------+

2 rows in set (0.00 sec)

## target端

root@192.168.102.25:3306  [evelyn]>select * from evelyn;

+------+--------+

| id    | name   |

+------+--------+

|     1 | evelyn |

|     2 | emily  |

+------+--------+

2 rows in set (0.00 sec)

1.2.7  监控

select * from perfORMance_schema.replication_connection_status\G;

##GTID

STOP  SLAVE FOR CHANNEL ‘CHANNEL_NAME’;

SET  SESSION GTID_NEXT=’’;

BEGIN;COMMIT;

SET  SESSION GTID_NEXT=’AUTOMATIC’;

START  SLAVE FOR CHANNEL ‘CHANNEL_NAME’;

## binlog+position

stop slave sql_thread FOR  CHANNEL ‘CHANNEL_NAME’;;

set global  sql_slave_skip_counter=1;

start slave sql_thread FOR  CHANNEL ‘CHANNEL_NAME’;;

 

 

##

root@192.168.102.25:3306  [(none)]>set session  gtid_next='bd783f44-258f-11e7-914b-005056b5d312:28083';

Query  OK, 0 rows affected (0.00 sec)

 

root@192.168.102.25:3306  [(none)]>begin;commit;

Query  OK, 0 rows affected (0.00 sec)

 

root@192.168.102.25:3306  [(none)]>set session gtid_next=automatic;

Query  OK, 0 rows affected (0.00 sec)

 

root@192.168.102.25:3306  [(none)]>start slave for channel 'repl24';

Query  OK, 0 rows affected (0.00 sec)

1.2.9  遇见错误

1、  Last_IO_Error: Relay log write failure: could not queue event from  master  ##repl24

Last_IO_Error: Fatal error: Failed  to run 'after_read_event' hook           ##repl23

stop slave

start slave

最后发现是开启一个源开启了半同步复制,一个源没有开题半同步复制。

2、  清除slave信息

reset slave

## 创建多源复制过程中,发现有一个slave没有channel_name,使用如下语句清除slave信息

reset slave all for channel '';

3、  root@192.168.102.24:3306 [evelyn]>uninstall plugin  rpl_semi_sync_master;

Query OK, 0 rows affected (0.01 sec)

root@192.168.102.24:3306 [evelyn]>uninstall plugin  rpl_semi_sync_slave;

Query OK, 0 rows affected (0.00  sec) 

到此,相信大家对“MySQL5.7的多源复制方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL5.7的多源复制方法

本文链接: https://www.lsjlt.com/news/59195.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL5.7的多源复制方法
    本篇内容主要讲解“MySQL5.7的多源复制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.7的多源复制方法”吧!    &...
    99+
    2024-04-02
  • MySQL5.7中多源复制及Nginx中间件是怎么样的
    本篇文章给大家分享的是有关MySQL5.7中多源复制及Nginx中间件是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。之前有写了一点验...
    99+
    2024-04-02
  • mysql5.6 —>mysql5.7 GTID模式下多源复制之实战案例
    背景说明:公司有多个mysql实例,单实例多个数据库,而且版本还是5.6,这给数据查询分析增加了不少繁琐的事情。所以推荐使用mysql5.6的实例多源复制到mysql5.7实例下方便数据的查询、分析以及权限...
    99+
    2024-04-02
  • 有生之年系列----MySQL5.7之多源复制&Nginx中间件(上)
    这是有生之年系列的填坑_(:з」∠)_ Nginx的TCP反向代理的联动帖:http://blog.itpub.net/29510932/viewspace-1842929/ ---------------...
    99+
    2024-04-02
  • MySQL5.7的多种安装方式
    本篇内容介绍了“MySQL5.7的多种安装方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Java文件复制多种方法
    InputStream与OutputStream  创建两个文件 - 源和目标。然后我们从源创建InputStream并使用OutputStream将其写入目标文件进行 java 复制文件操作。 private static void ...
    99+
    2023-10-27
    java jvm c++
  • mysql 5.7如何实现多主一从的多源复制
    这篇文章主要介绍了mysql 5.7如何实现多主一从的多源复制,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 主服务器创建用户 主1 ...
    99+
    2024-04-02
  • mysql5.7增加用户的方法
    这篇文章主要介绍了mysql5.7增加用户的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql5.7增加用户的方法:首先登录mysql...
    99+
    2024-04-02
  • mysql5.7安装运行的方法
    这篇文章给大家分享的是有关mysql5.7安装运行的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql5.7安装运行的方法:首先将安装包解压到某个目录下,并初始化数据库...
    99+
    2024-04-02
  • mysql5.7的安装实例方法
    这篇文章主要介绍“mysql5.7的安装实例方法”,在日常操作中,相信很多人在mysql5.7的安装实例方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql5.7的安...
    99+
    2024-04-02
  • mysql5.7重置root密码的方法
    这篇文章给大家分享的是有关mysql5.7重置root密码的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。安装完mysql5.7后忘记了密码,需要重置root密码;第一步:修...
    99+
    2024-04-02
  • Java多线程断点复制的方法是什么
    这篇文章主要介绍了Java多线程断点复制的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java多线程断点复制的方法是什么文章都会有所收获,下面我们一起来看看吧。细节介绍我这里是使用一个Timer类(...
    99+
    2023-07-06
  • Docker容器如何实现MySQL多源复制
    今天小编给大家分享一下Docker容器如何实现MySQL多源复制的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。⛳️ 1.多源...
    99+
    2023-07-02
  • mysql5.7 报错1055的解决方法
    这篇文章将为大家详细讲解有关mysql5.7 报错1055的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql5.7报错1055的解决办法:首先找到并打开m...
    99+
    2024-04-02
  • SpringBoot多数据源集成的方法
    这篇文章主要介绍了SpringBoot多数据源集成的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot多数据源集成的方法文章都会有所收获,下面我们一起来看看吧。一、多数据源使用场景与弊端1....
    99+
    2023-06-30
  • MySQL多主复制和MySQL Galera的安装部署方法
    本篇内容主要讲解“MySQL多主复制和MySQL Galera的安装部署方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL多主复制和MySQL Gal...
    99+
    2024-04-02
  • springboot下配置多数据源的方法
    一、springboot 简介SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多...
    99+
    2023-05-31
    spring boot 多数据源
  • Mysql复制Replication的实现方法
    本篇内容主要讲解“Mysql复制Replication的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql复制Replication的实现方法”吧...
    99+
    2024-04-02
  • mysql表结构的复制方法
    本篇内容主要讲解“mysql表结构的复制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql表结构的复制方法”吧!我们特别是oracle dbas常常会...
    99+
    2024-04-02
  • C#递归方法复制文件夹的方法
    这篇文章主要介绍“C#递归方法复制文件夹的方法”,在日常操作中,相信很多人在C#递归方法复制文件夹的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#递归方法复制文件夹的方法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作