广告
返回顶部
首页 > 资讯 > 数据库 >什么是MYSQL的AB复制原理
  • 490
分享到

什么是MYSQL的AB复制原理

2024-04-02 19:04:59 490人浏览 八月长安
摘要

下面讲讲关于什么是Mysql的AB复制原理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是mysql的AB复制原理这篇文章你一定会有所受益。Myslq AB复制做AB复制之

下面讲讲关于什么是Mysql的AB复制原理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是mysql的AB复制原理这篇文章你一定会有所受益。

Myslq AB复制

做AB复制之前前提时两边的数据必须一样,Mysql复制默认的是异步复制,master将事物事件写入binlog,但不知道slave何时接受且已接受,在异步复制的机制的情况下,如果master宕机,事务在master上已提交,但很可能这些事物没有传到任何slave上。此时salve有可能丢失事务。

官方半同步的复制的概念:

1  当slave主机连接到master时。能够查看是否处于半同步复制的机制。

2  当master上开启半同步复制的功能时,至少应该有一个slave开启其功能。

3  .当一个事务的事件都已写入其relay-log中且已刷新到磁盘上,Slave才会告知已收到

同步复制:Master提交事务,直到事务在所有的Slave都已提交,此时才会返回客户端,事务执行完毕。缺点:完成一个事务可能会有很大的延迟。

异步复制:当Slave准备好才会向Master请求binlog。缺点:不能保证一些事件都能够被所有的Slave所接收。

半同步复制:半同步复制工作的机制处于同步和异步之间,Master的事务提交阻塞,只要一个Slave已收到该事务的事件且已记录。它不会等待所有的Slave都告知已收到,且它只是接收,并不用等其完全执行且提交

实验 server2 :master

     Server3 :slave

mysql-5.1.71版本

[root@server2 ~]# yum install mysql-server -y

[root@server3~]# yum install mysql-server -y

[root@server2 ~]# /etc/init.d/mysqld start

[root@server2 ~]# vim /etc/my.cnf

在[mysqld]添加以下参数

8 log-bin=mysql-bin     启动二进制日志

9 binlog-do-db=westos  二进制日志同步的数据库名称

10 server-id=1         必须是1到2^32-1之间的一个正整数数

[root@server2 ~]# /etc/init.d/mysqld restart         在重启服务的过程中如果失败,要去/var/log/mysql.log查看原因,一般来说都是上面修改的配置文件错了,如果不是在看其他原因,时在不行据删除/var/lib/mysql 里面的文件,然后初始化重启。

[root@server2 mysql]# mysql_secure_installation 修改密码

[root@server2 mysql]# mysql -pwestos

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 11

Server version: 5.1.71-log Source distribution

 

Copyright (c) 2000, 2013, oracle and/or its affiliates. Allrights reserved.

 

Oracle is a reGIStered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show databases;

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

| Database           |

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

| infORMation_schema |

| mysql              |

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

2 rows in set (0.00 sec)

 

mysql> create database weCtrl-C -- exit!

Aborted

[root@server2 mysql]# mysql -pwestos

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.1.71-log Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show master status; 查看master状态

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

| File             |Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000001 |     737 | westos       |                  |

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

1 row in set (0.00 sec)

 

mysql> create database westos;  创建一个共享的库

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| westos             |

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

3 rows in set (0.00 sec)

 

mysql> grant replication slave on *.* tolinux@'172.25.137.3'identified by 'redhat';

Query OK, 0 rows affected (0.00 sec)  授权个slave

 

mysql> Bye

里面有mysql-bin.00000x二进制文件,记录的是堆数据库所有的操作,在对数据库进行备份的时候要用到这个文件。



什么是MYSQL的AB复制原理

[root@server2 mysql]# mysqlbinlog mysql-bin.000001  通过mysqlbinglog 来查看里面的内容。

[root@server3 ~]# vim /etc/my.cnf

8 server-id=2

[root@server3 ~]# /etc/init.d/mysqld restart

[root@server3 ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.71 Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

 

mysql> show

    -> ;

ERROR 1064 (42000): You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL Server version for the right syntaxto use near '' at line 1

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| test               |

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

3 rows in set (0.00 sec)

 

mysql> create database westos;

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

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

| Database           |

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

| information_schema |

| mysql              |

| test               |

| westos             |

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

4 rows in set (0.00 sec)

 

mysql> show slave stauts;

ERROR 1064 (42000): You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL server version for the right syntaxto use near 'stauts' at line 1

mysql> show slave status;

Empty set (0.00 sec)

mysql> change master tomaster_host='172.25.137.2',master_user='linux',master_passWord='redhat',master_log_file='mysql-bin.000001',master_log_pos=975;

Query OK, 0 rows affected (0.81 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;     Slave_IO_Running,Slave_SQL_Running: 这两个的状态都是yes说明状态良好。Slave_IO_Running如果这个是no可能是写有问题,一般看看防火墙是否关闭,selinux是否为disabled

什么是MYSQL的AB复制原理

在master端加入表信息:

mysql> createtable student(username varchar(12) not null, number varchar(12) not null);

mysql> insertinto values('dog','111');

mysql> select *from student;

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

| username | number|

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

| dog      | 111   |

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

1 row in set (0.00sec)

在slave端

mysql> usewestos;

mysql> select *from student;

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

| username | number|

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

| dog      | 111   |

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

1 row in set (0.00sec)

 

这里面记录了master端的信息

mysql-bin.000001  slave端的复制二进制文件就来自master的这个文件。

什么是MYSQL的AB复制原理

[root@server2mysql]# mysqlbinlog mysql-bin.000001 查看对数据库的操作。 

                      mysqlABC 复制

 

     A                 B                     C

Mastermaster         slave                   slave

  

B的数据来自master,C的数据来自B所以对B而言既是master又是slave,但是BC只做读操作,不执行写,只有A执行写。

实验 server2 :master

     Server3 :slave

     Server4:slave

[root@server4 ~]#yum install mysql-server -y

[root@server3mysql]# /etc/init.d/mysqld stop

[root@server3mysql]# vim /etc/my.cnf

什么是MYSQL的AB复制原理


[root@server3 mysql]# /etc/init.d/mysqld restart

[root@server4 ~]# vim /etc/my.cnf

在mysqld里加

什么是MYSQL的AB复制原理

[root@server4 ~]#/etc/init.d/mysqld start

Server3:

mysql> grantreplication slave on *.* to linux@'172.25.137.4' identified by 'redhat';

Query OK, 0 rowsaffected (0.00 sec)  给server4授权

[root@server4 ~]#mysql -h 172.25.137.3 -u linux -predhat  测试是否能连通server3

Server4  要向数据能同时存在,就必须给的环境一样,在实验中同一个westos的库里的数据一致就必须现有这个库。

什么是MYSQL的AB复制原理

change master tomaster_host='172.25.137.3',master_user='linux',master_password='redhat',master_log_file='mysql-bin.000005',master_log_pos=106;  与server3同步。

[root@server2mysql]# mysqlbinlog mysql-bin.000001  在这个文件里找到在westos数据库建表的那个命令,

975是指开始建表的数值,1120是这条命令结束的数值

还有一种是用时间找

什么是MYSQL的AB复制原理

[root@server2mysql]# mysqlbinlog --start-position=975 --stop-position=1224 mysql-bin.000001|less  这是通过数值查找master的wesos数据库相关操作

[root@server2mysql]#  mysqlbinlog--start-datetime='2016-07-30 13:53:26' --stop-datetime='2016-07-30 13:55:10'mysql-bin.000001 |less 这是通过时间来查找master的wesos数据库相关操作。

[root@server2mysql]#scp mysql-bin.000001 172.25.137.4:/mnt 把master这个二进制文件发送给slave。

[root@server2mysql]# mysqldump -pwestos westos > backup.sql 把westos这个库备份到backup.sql文件。

[root@server4 mnt]#ls

mysql-bin.000001

[root@server4 mnt]#mysqlbinlog --start-position=975 --stop-position=1224 mysql-bin.000001|mysql         把这个二进制文件倒入到westos这个库,使三个westos数据库在一个环境下。

在master的westos数据库上操作。

Mysql备份方式:

  1. 冷备:需要关闭服务,且读写请求不允许。

  2. 热备:服务正常,备份不影响。

  3. 温备:服务正常,但是只允许读不允许写。 

    Mysql备份方法:

  4. :mysqldump  单线程,缓慢

  5. :mysqlpump 多线程,它的最小限度每张表可以绑一个线程

  6. :mydumpe 多线程,最小限度每张表可以绑多个线程

    对于以上什么是MYSQL的AB复制原理相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: 什么是MYSQL的AB复制原理

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

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

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

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

下载Word文档
猜你喜欢
  • 什么是MYSQL的AB复制原理
    下面讲讲关于什么是MYSQL的AB复制原理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完什么是MYSQL的AB复制原理这篇文章你一定会有所受益。Myslq AB复制做AB复制之...
    99+
    2022-10-18
  • mysql复制的原理是什么
    今天就跟大家聊聊有关mysql复制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 复制概述   &nbs...
    99+
    2022-10-18
  • MySQL中复制机制的原理是什么
    MySQL中复制机制的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景介绍复制,就是对数据的完整拷贝,说到为什么要...
    99+
    2022-10-18
  • MySQL的主从复制原理是什么
    这篇“MySQL的主从复制原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL的主从复制原理是什么”文章吧。前...
    99+
    2023-07-02
  • MySQL复制的工作原理是什么
    今天就跟大家聊聊有关MySQL复制的工作原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 MySQL复制的工作...
    99+
    2022-10-18
  • mysql主从复制的原理是什么
    mysql主从复制的原理是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据...
    99+
    2023-06-15
  • MySQL复制的原理和作用是什么
    本篇内容主要讲解“MySQL复制的原理和作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL复制的原理和作用是什么”吧!目录一、MySQL复制相关概念二、简单的一主一从架构实现新数...
    99+
    2023-06-20
  • MySQL中主从复制的原理是什么
    MySQL中主从复制的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。0. 主从复制首先主从复制是什么简单来说是让一台MySQL服务器...
    99+
    2022-10-18
  • MySql中主从复制机制的原理是什么
    今天就跟大家聊聊有关MySql中主从复制机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。主从复制机制MySQL基于binlog实现主从复制,从节点跟踪并获取主节点bin...
    99+
    2023-06-14
  • MySQL主从复制的底层原理是什么
    这篇文章给大家介绍MySQL主从复制的底层原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主从复制原理(1) Master 将数据改变记录到二进制日志(binary log)中...
    99+
    2022-10-18
  • MySQL主从架构的复制原理是什么
    MySQL主从架构的复制原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 复制概述Mysql内建的复制功能是构建大型,高性能...
    99+
    2022-10-18
  • mysql主从复制的原理有什么
    mysql主从复制的原理有什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明mysql数据库提供了主从备份机制,实际上是将主数据库的所有数据同时写入备份...
    99+
    2023-06-15
  • MySQL锁机制原理是什么
    这篇文章主要介绍“MySQL锁机制原理是什么”,在日常操作中,相信很多人在MySQL锁机制原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL锁机制原理是什么”...
    99+
    2022-10-18
  • Redis的主从复制是什么,主从复制的原理又是什么?
    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有...
    99+
    2022-10-18
  • MySQL主从复制的原理和注意事项是什么
    这篇文章主要介绍了MySQL主从复制的原理和注意事项是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。主从复制原理(1) Master 将数据...
    99+
    2022-10-18
  • kafka主从复制的原理是什么
    Kafka的主从复制是通过Leader-Replica模式实现的。主要原理如下: Kafka集群中的每个主题分区都有一个Leade...
    99+
    2023-10-27
    kafka
  • MongoDB中复制集的原理是什么
    这篇文章给大家介绍MongoDB中复制集的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。复制集简介Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primar...
    99+
    2022-10-18
  • Mysql中MVCC机制的原理是什么
    这篇文章将为大家详细讲解有关Mysql中MVCC机制的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Mysql的锁和事务隔离级别在理解MVCC机制的原理之前,需要先理解Mysql的...
    99+
    2023-06-14
  • MySQL锁定机制的原理是什么
    这篇文章给大家介绍MySQL锁定机制的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变...
    99+
    2022-10-18
  • mysql中WAL机制的原理是什么
    mysql中WAL机制的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、WAL预写日志系统。数据库中的高效日志算法,对于非内存数据库来说,磁盘I/O...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作