docker (五) (搭建MySQL数据库集群)

news2025/8/2 23:58:04

MySQL集群搭建我们通过PXC【Percona XtraDB Cluster】来实现强一致性数据库集群搭建。

一 Percona XtraDB Cluster (理论)

1 简介

Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下:

1).同步复制,事务要么在所有节点提交或不提交。

2).多主复制,可以在任意节点进行写操作。

3).在从服务器上并行应用事件,真正意义上的并行复制。

4).节点自动配置。

5).数据一致性,不再是异步复制。

Percona XtraDB Cluster完全兼容MySQL和Percona Server,表现在:

1).数据的兼容性

2).应用程序的兼容性:无需更改应用程序

1).集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上

2).每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。

3).每个节点都包含完整的数据副本

2 优缺点:

优点:
).当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需 远程访问

2).无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作, 不受影响

3).良好的读负载扩展,任意节点都可以查询

缺点:
1).加入新节点,开销大。需要复制完整的数据

2).不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上

3).有多少个节点就有多少重复的数据

二 docker 搭建

1> 拉取镜像

docker pull percona/percona-xtradb-cluster:5.7.21

2> 复制镜像(重命名,方便后面的命令)

docker tag percona/percona-xtradb-cluster:5.7.21 pxc

3> 创建单独的网段,给MySQL数据库集群使用

docker network create --subnet=172.20.0.0/24 pxc-net
docker network inpsect pxc-net # 查看详情

4>创建三个数据卷volume,用于跟mysql集群映射 (数据卷:用来虚拟机和镜像数据一致,持久化)

docker volume create --name v1
docker volume create --name v2
docker volume create --name v3 # 创建 volume
docker volume inspect v1 # 查看详情

5> 运行三个 PXC容器

  • 创建第一个节点:
    • -d 表示: 守护线程
    • -p 表示:端口映射
    • -v 表示:宿主机地址绝对路径:容器相对路径 (数据存储位置)
    • -e 表示:后面跟的的参数
      • MYSQL_ROOT_PASSWORD:登录密码
      • CLUSTER_NAME 节点名称
      • EXTRABACKUP_PASSWROD:额外支持密码 (不明白)
      • privileged :有特权的(不明白)
      • net :对应新建的网段
      • ip:单独的一个ip地址

docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=123456 --privileged --name=node1 --net=pxc-net --ip 172.22.0.2 pxc

  • 创建第二个和第三个节点:
    • 注意 -e CLUSTER_JOIN=node1 表示:该节点跟哪个节点关联

docker run -d -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=pxc-net --ip 172.22.0.3 pxc

docker run -d -p 3303:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e EXTRABACKUP_PASSWROD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=pxc-net --ip 172.22.0.4 pxc

三 测试集群:

  • 三个节点都为启动状态
    在这里插入图片描述
  • 测试连接通过
    在这里插入图片描述
  • 操作三个数据库,发现数据保持一致性
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树的前序/中序/后序遍历新手入门介绍

一、前序遍历 | 根左右(DLR) 1.1 简介 前序遍历简介也叫先序遍历 前序遍历 可以分为三部分:根、左子树、右子树 先遍历根节点 、再遍历左子树、再遍历右子树 左/右 子树遍历方法:先访问根节点,再访问 左孩子节点,访问到左孩子节…

04、SpringAOP详解

1、Spring AOP简介 1、什么是AOP 1、定义阐述 AOP的全称是 Aspect Oriented Programming,是面向切面编程的技术,把一个个的横切关注点放到某个模块中去,称之为切面。那么每一个的切面都能影响业务的某一种功能,切面的目的就是功…

蒙泰转债上市价格预测

蒙泰转债基本信息转债名称:蒙泰转债,评级:A,发行规模:3.0亿元。正股名称:蒙泰高新,今日收盘价:31.3,转股价格:26.15。当前转股价值 转债面值 / 转股价格 * 正…

【Java进阶】学好常用类,code省时省力

一、工具类 所谓工具类,即将完成通用功能的方法分类放到类中,工具类能够被高效地重复使用,使我们的编码快速、高效。 工具类的设计 工具方法使用public static修饰,通过工具类名调用工具方法。对于工具类,我们通常都…

AI内容生成时代:该如何和AI对话?

北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理 人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典 AI自动生成内容(AIGC)最近可以说非常热门。而如何给AI有效输入提示,从而达…

基于JSP的保险业务管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86467452 主要使用技术 SpringStruts2HibernateJSPJSCSSMysql 功能介绍 本系统旨在为当今的保险行业提供一套综合性的管理系统业务,系统的主要用户为保险的购买者以及系统的管理…

安信可Ai-WB1系列固件烧录指导

文章目录前言1 准备材料2 硬件连接3 烧录软件的使用联系我们前言 本文主要介绍如何使用Ai-WB1系列模组以及开发板更新固件烧录操作说明。 1 准备材料 AI-WB1系列模组或者开发板USB转TTL模块/Type-C数据线固件详见链接常见固件中的出厂固件串口工具链接烧录工具详见链接 烧录…

在github上部署静态页面

使用github-page部署静态页面 需求 假如你辛辛苦苦写好了一个静态网页,很想要炫耀一下,让大家都可以通过公网访问看到我的网页。但是不想太麻烦,买服务器,安装软件,部署环境,配置域名,备案&…

navicate的安装使用

1 navicat概述 Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。官网: http://www.navicat.com.cn 2 navicat安装 网上有教程 3 navicat使用 3.1 建立和mysql服务…

金融行业数据安全法律法规清单

近年来,随着业务快速发展,金融机构积累了大量的数据,其中包含大量的客户信息等敏感数据,数据信息一旦泄露,不仅会给客户造成直接经济损失,也会给金融业的声誉带来负面影 响,甚至会导致金融机构承…

dreamweaver作业静态HTML网页设计 大学美食菜谱网页制作教程(web前端网页制作课作业)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

Linux之权限【读、写、执行】【详细总结】

目录权限相关介绍rwx权限详解rwx作用到文件rwx作用到目录文件及目录权限实际案例权限修改第一种方式,,-,变更权限案例演示:第二种方式:通过数字变更权限chmod urwx,grx,ox 文件目录名 chmod 751 文件目录名修改文件所…

工时管理:警惕员工时间偷窃!企业应该如何避免?

员工时间偷窃是指员工捏造工时,对工时进行四舍五入,或故意延长休息时间,从事与工作无关的活动,却谎报了工作时间,接受了公司在这期间支付的劳动报酬。大家都知道的“带薪摸鱼”这个词,就是员工时间偷窃的一…

Redis学习

Redis1.NoSQL数据库概述NoSQL使用场景NoSQL不适用场景2.Redis2.1应用场景2.1.1 配合关系型数据库做高速缓存2.1.2 多样的数据结构存储持久化数据2.1.3 Redis内存管理2.1.3.1 删除策略2.1.4 Redis持久化机制2.1.4.1 什么是RDB持久化?2.1.4.2 RDB创建快照时会阻塞主线…

小啊呜产品读书笔记001:《邱岳的产品手记-12》第22讲 产品经理的图文基本功(上):产品文档 23讲产品经理的图文基本功(下):产品图例

小啊呜产品读书笔记001:《邱岳的产品手记-12》第22讲 产品经理的图文基本功(上):产品文档 & 23讲产品经理的图文基本功(下):产品图例一、今日阅读计划二、泛读&知识摘录1、第22讲 产品经…

WPF中使用MVVM模型进行数据绑定

文章目录前言一、声明一个类用来实现接口 INotifyPropertyChanged二、实例化ViewModel对象1.新建MainViewModel模型类2.实例化对象三、在界面设计代码中进行绑定四、应用前言 WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用…

如何实现一个优秀的 HashTable 散列表?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 前言 大家好,我是小彭。 在前几篇文章里,我们聊到了 Java 中的几种线性表结构,包括 ArrayList、LinkedList、ArrayDeque 等。今天&#xf…

ArcGIS绘制地球

下面这个图是非常不错的,截取自论文的一张图: 学了十几年地理学,最初的兴趣恐怕还是小时候常常摆弄的地球仪;现在终于有机会尝试地球仪风格制作了。 虽然迟到了十几年,不过今天还是有机会“复现”小时候的地球仪。 先…

使用docker-compose部署达梦DEM管理工具,mac m1系列适用

之前搭建了mac m1下基于docker的达梦库(地址),但是没有一个好用的管理端。 用过DBeaver,可以使用自定jar创建dm链接,只做简单查询还行,要是用到一些修改、大文本查看、配置修改等高级点的功能就不行了。 …

Redis-使用java代码操作Redis

目录 Java连接Redis Java链接 测试是否连接 Java操作Redis Redis字符串(String) Redis哈希(Hash) Redis列表&#xff08;List&#xff09; Redis集合&#xff08;Set&#xff09; Java连接Redis 前置条件&#xff1a;Redis的服务要开启 pom依赖 <dependency>&l…