mysql的主主复制模型

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

演示mysql的双主复制的模型:

物理机为win7,虚拟机是2台centos7

节点1:192.168.255.2

节点2:192.168.255.3


yum安装mariadb-server5.5



配置节点1:

]# vim /etc/my.cnf

wKiom1dYT6bwzlf4AABqi3ptfsM606.png


配置节点2

]# vim /etc/my.cnf

wKioL1dYULmj_A4lAACHhhBi1yA503.png


分别启动mysql服务:

]# systemctl start mariadb.service


分别在两节点上:设置复制权限的账号:

> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';

> FLUSH PRIVILEGES;


注意:在实际工作中,只能授权单个IP,不能是通配符的形式授权;如果有多个ip,就每个ip单独执行一遍授权语句;


然后,设置两个节点都指向对方为主节点;

提前记录好对方的二进制日志文件事务所处的位置;然后就从这个位置开始复制:


节点1:查看并记录二进制日志文件事务所处的位置

wKioL1dYUePBK28sAAAWJnmsvdM967.png

记录位置为499,将在节点2设置时使用;


节点2:查看并记录二进制日志文件事务所处的位置

wKioL1dYUrKCaIzRAAAVaGiFhss174.png

记录位置为509,将在节点1设置时使用;


设置节点1:

> CHANGE MASTER TO MASTER_HOST='192.168.255.3',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=509;


设置节点2:

> CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;


分别在两节点上:设置

> START SLAVE;


此时,在两节点均可查看:

wKiom1dYU9vTDLX5AACti_E5HSU330.png

wKioL1dYVOWgch3oAACqfz3JpNY161.png

显示内容和主从复制基本相同,只不过都是互为双主的模型;


此时,双主模型配置完成,双方都可以通过对方复制了;


验证双主:

例如在节点1,创建一个新库:

> CREATE DATABASE mydb;

并查看节点1的状态:

wKiom1dYVhHjEA5gAACv04w4Mw8149.png


在节点2:

查看状态:

wKiom1dYVq3AN-_tAACpO2DgCsE275.png

查看同步到的新库:

wKioL1dYWAHTE23fAAArFLBL5DQ790.png

此时,已经验证了节点1写操作后,节点2同步节点1后完成数据备份;


再验证节点2发生写操作后,节点1同步节点2后完成数备份;

在节点2:

在新库中创建表:

> use mydb

> CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name CHAR(30));

wKiom1dYWKrAhGiGAAAcobYn8TU126.png


查看节点2状态:

wKioL1dYWjzTQYMnAAAWN7ziynI710.png


到节点1上查看同步后的结果:

wKioL1dYWrjRALKgAACbrWPghRg939.png


查看同步到的表:

wKiom1dYWk7Cywf5AABMssuS_R4421.png


继续验证自动增长偏移量:

继续在节点1:给字段插入新值

> INSERT INTO tb1 (name) VALUES ('Kobe Byrant'),('Michael Jordan'),('Yao Ming');

wKioL1dYXJmy8dStAAActmBY8gA472.png


在节点2:

也给字段插入新值,验证自动增长偏移量不会出现重复的id

> INSERT INTO tb1 (name) VALUES ('Zhu Uuanzhang'),('Zhu Di'),('Zhu Yue');

wKiom1dYXA7BZlNCAAAZIJGFfCY509.png

可验证,自动增长偏移量实现当两边分别插入新值后,id不会重复;


以上就是mysql主主复制模型的配置实现完成。










本文转自 crystaleone 51CTO博客,原文链接:http://blog.51cto.com/linsj/1787600,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
MySQL中主从复制的原理和配置命令
要原因包括提高性能、实现高可用性、数据备份和灾难恢复。了解两大线程( I/O 和 SQL)I/O线程:目的:I/O线程主要负责与MySQL服务器之外的其他MySQL服务器进行通信,以便复制(replication)数据。 功能: 当一个MySQL服务器作为主服务器(master)时,I/O线程会将变更日志(binary log)中的事件传输给从服务器(slave)。从服务器上的I/O线程负责接收主服务器的二进制日志,并将这些事件写入本地的中继日志(relay log)。 配置: 在MySQL配置文件中,你可以通过配置参数如和来启用二进制日志和指定服务器ID。log-bin server
174 1
MySQL中主从复制的原理和配置命令
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
随着数据量增长和业务扩展,单个数据库难以满足需求,需调整为集群模式以实现负载均衡和读写分离。MySQL主从复制是常见的高可用架构,通过binlog日志同步数据,确保主从数据一致性。本文详细介绍MySQL主从复制原理及配置步骤,包括一主二从集群的搭建过程,帮助读者实现稳定可靠的数据库高可用架构。
145 9
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎采用多线程模型,包含多个后台线程以处理不同任务。主要线程包括:IO Thread负责读写数据页和日志;Purge Thread回收已提交事务的undo日志;Page Cleaner Thread刷新脏页并清理redo日志;Master Thread调度其他线程,定时刷新脏页、回收undo日志、写入redo日志和合并写缓冲。各线程协同工作,确保数据一致性和高效性能。
MySQL底层概述—3.InnoDB线程模型
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制
MySQL主从复制 作用、原理—主库线程、I/O线程、SQL线程;主从同步要求,主从延迟原因及解决方案;数据一致性,异步复制、半同步复制、组复制
285 11
MySQL原理简介—5.存储模型和数据读写机制
本文介绍了MySQL中InnoDB存储引擎的物理存储结构和读写机制。主要内容包括: 1. 为什么不能直接更新磁盘上的数据 2. 数据页的概念 3. 一行数据的存储 4. 数据头的内容 5. 行溢出和溢出页 6. 数据页的物理结构 7. 表空间的物理结构 8. InnoDB存储模型及读写机制总结 这些机制共同确保了InnoDB在高并发场景下的高效运行和数据一致性。
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
418 1
MySQL主从复制原理和使用
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
282 0
Mysql中搭建主从复制原理和配置
说一下MySQL主从复制的原理?
【8月更文挑战第24天】说一下MySQL主从复制的原理?
91 0