码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 猿创征文 | 国产数据库之使用PXD在Docker环境下部署PolarDB-X集群


    猿创征文 | 国产数据库之使用PXD在Docker环境下部署PolarDB-X集群

    • 一、PolarDB-X介绍
      • 1.PolarDB-X简介
      • 2.PolarDB-X特点
    • 二、PolarDB-X的产品架构
      • 1.产品架构图
      • 2.PolarDB-X架构介绍
    • 三、环境规划
    • 四、Docker安装
      • 1.安装系统工具
      • 2.配置docker的yum仓库源
      • 3.安装docker
      • 4.开启docker服务
      • 5.配置docker加速
      • 6.查看docker状态
    • 五、安装前环境配置
      • 1.配置/etc/hosts
      • 2.配置SSH免密
      • 3.测试shh免密
      • 4.安装python3
      • 5.检查python3
    • 六、安装 PXD工具
    • 七、部署 PolarDB-X集群
      • 1.编辑polardbx.yaml
      • 2.一键部署 PolarDB-X集群
      • 3.查看集群状态
    • 八、连接PolarDB-X
      • 1.连接CN节点
      • 2.检查GMS
      • 3.创建数据库
      • 4.创建分区表
      • 5.插入内容
      • 6.查看分区表内容
      • 7.检查CDC
      • 8.检查DN
      • 9.检查CN
    • 九、PolarDB-X集群总结
      • 1.PolarDB-X的生态兼容
      • 2.pxd 的更多指令及用法
      • 3.检查各安装节点的docker容器
      • 4.卸载清除PolarDB-X集群

    一、PolarDB-X介绍

    1.PolarDB-X简介

    1.PolarDB-X 是一款面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。
    2.PolarDB-X采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点。

    2.PolarDB-X特点

    • 水平扩展

    PolarDB-X 采用 Shared-nothing 架构进行设计,支持多种 Hash 和 Range 数据拆分算法,通过隐式主键拆分和数据分片动态调度,实现系统的透明水平扩展。

    • 分布式事务

    PolarDB-X 采用 MVCC + TSO 方案及 2PC 协议实现分布式事务。事务满足 ACID 特性,支持 RC/RR 隔离级别,并通过一阶段提交、只读事务、异步提交等优化实现事务的高性能。

    • 混合负载

    PolarDB-X 通过原生 MPP 能力实现对分析型查询的支持,通过 CPU quota 约束、内存池化、存储资源分离等实现了 OLTP 与 OLAP 流量的强隔离。

    • 企业级

    PolarDB-X 为企业场景设计了诸多内核能力,例如 SQL 限流、SQL Advisor、TDE、三权分立、Flashback Query 等。

    • 云原生

    PolarDB-X 在阿里云上有多年的云原生实践,支持通过 K8S Operator 管理集群资源,支持公有云、混合云、专有云等多种形态进行部署,并支持国产化操作系统和芯片。

    • 高可用

    通过多数派 Paxos 协议实现数据强一致,支持两地三中心、三地五副本等多种容灾方式,同时通过 Table Group、Geo-locality 等提高系统可用性。

    • 兼容 MySQL 系统及生态

    PolarDB-X 的目标是完全兼容 MySQL ,目前兼容的内容包括 MySQL 协议、MySQL 大部分语法、Collation、事务隔离级别、Binlog 等。

    二、PolarDB-X的产品架构

    1.产品架构图

    在这里插入图片描述

    2.PolarDB-X架构介绍

    • 计算节点(CN, Compute Node)

    计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。

    • 存储节点(DN, Data Node)

    存储节点负责数据的持久化,基于多数派 Paxos 协议提供数据高可靠、强一致保障,同时通过 MVCC 维护分布式事务可见性。

    • 元数据服务(GMS, Global Meta Service)

    元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息,维护账号、权限等安全信息,同时提供全局授时服务(即 TSO)。

    • 日志节点(CDC, Change Data Capture)

    日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力,提供兼容 MySQL Replication 协议的主从复制能力。

    三、环境规划

    hostname IP地址 角色 系统版本 docker版本
    node01 192.168.3.80 gms、cdc节点 centos7.6 20.10.18
    node02 192.168.3.81 cn/dn节点 centos7.6 20.10.18
    node03 192.168.3.82 cn/dn节点 centos7.6 20.10.18

    四、Docker安装

    1.安装系统工具

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    • 1

    2.配置docker的yum仓库源

    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    
    • 1
    • 2

    3.安装docker

    yum -y install docker-ce
    
    • 1

    4.开启docker服务

    systemctl start docker && systemctl enable docker
    
    • 1

    5.配置docker加速

    echo '{
        "registry-mirrors": ["https://sp4mg57h.mirror.aliyuncs.com"] }'   > /etc/docker/daemon.json 
    systemctl daemon-reload 
    systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4

    6.查看docker状态

    [root@node01 yum.repos.d]# systemctl status docker
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since Sun 2022-10-09 15:43:11 CST; 44s ago
         Docs: https://docs.docker.com
     Main PID: 13698 (dockerd)
        Tasks: 9
       Memory: 27.7M
       CGroup: /system.slice/docker.service
               └─13698 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
    Oct 09 15:43:10 node01 dockerd[13698]: time="2022-10-09T15:43:10.354711367+08:00" level=info msg="ccResolverWrapper: sending update to cc: {
       [{
       unix...dule=grpc
    Oct 09 15:43:10 node01 dockerd[13698]: time="2022-10-09T15:43:10.354721851+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
    Oct 09 15:43:10 node01 dockerd[13698]: time="2022-10-09T15:43:10.370117834+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
    Oct 09 15:43:10 node01 dockerd[13698]: time="2022-10-09T15:43:10.559156869+08:00" level=info msg="Loading containers: start."
    Oct 09 15:43:10 node01 dockerd[13698]: time="2022-10-09T15:43:10.984797715+08:00" level=info msg="Default bridge (docker0) is assigned with an IP ... address"
    Oct 09 15:43:11 node01 dockerd[13698]: time="2022-10-09T15:43:11.043510603+08:00" level=info msg="Loading containers: done."
    Oct 09 15:43:11 node01 dockerd[13698]: time="2022-10-09T15:43:11.307372551+08:00" level=info msg="Docker daemon" commit=e42327a graphdriver(s)=ove...=20.10.18
    Oct 09 15:43:11 node01 dockerd[13698]: time="2022-10-09T15:43:11.307446499+08:00" level=info msg="Daemon has completed initialization"
    Oct 09 15:43:11 node01 systemd[1]: Started Docker Application Container Engine.
    Oct 09 15:43:<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    面向对象设计原则总结:SOLID/LKP/DRY/KISS…
    Cisco.Packet.Tracer思科模拟器路由协议优先级对照
    抗CD4单抗偶联表阿霉素/单克隆抗体Zh805/特异性靶向肽A54偶联阿霉素的制备
    数组的API
    Vue3基础——数据双向绑定、常用指令、计算属性、watch监听数据变化、class类名&style样式多种操作方式
    k8s整合kong
    图问题——深度遍历,广度遍历,并查集
    零基础学Linux内核之设备驱动篇(6)_字符设备_实验篇1
    spring.factories与@ComponentScan注解辨析
    ROS:ubuntu 20.04 noetic安装指南(简略版)
  • 原文地址:https://blog.csdn.net/jks212454/article/details/127227299
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号