PolarDB实操课] 04.通过源码部署PolarDB-X企业版

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 本次课程由PolarDB开源架构师王江颖分享,详细介绍了通过源码部署PolarDB-X企业版的全过程。主要内容包括:1. **编译基础**2. **使用源码编译部署PolarDB-X企业版**3. **演示实例**:通过阿里云ECS进行实际操作演示,从创建用户、赋予权限到最终启动并连接PolarDB-X数据库,展示了完整的部署过程。4. **总结**

PolarDB实操课] 04.通过源码部署PolarDB-X企业版


内容介绍:

一、编译基础

二、使用源码编译部署PolarDB-X企业版

三、演示实例

总结

 

本次分享的主题是通过源码部署PolarDB-X企业版,由PolarDB开源架构师王江颖分享。

28a5e7599c3c36c323736a922fa28d3.png

本次课程通过源码部署PolarDB-X企业版首先了解编译的基础知识编译是将高级编程语言写成的源代码转换成低级语言的过程以便计算机可以直接执行程序。高级编程语言是平时所用的语言如C、C++、java、python等。低级语言是计算机能够直接识别的语言如机器语言字节码因为计算机不能识别高级编程语言所以需要通过编译把高级语言转换成低级语言以便于执行程序


一、编译基础

d79958b249863c28e882f1c4043391e.png

编译分为部分

1. 预处理

预处理指编译器处理源代码文件中的预处理指指令编译器是软件程序它可以读取高级语言写成源代码经过一系列的分析转换过程产生等价的低级语言代码。常见的编译器有GCC

2. 词法分析

词法分析将源代码分解成一串标记也就是tokens包括关键字、变量、常量等。

3. 语法分析

语法分析将标记组成语法结构表示成一棵语法树。在完成语法分析后进入到语义分析的阶段语义分析检查语法树是否有意义比如变量的类型是否正确、数调用是否有效等。

4. 代码生成的阶段

代码生成就是把语法结构转换成目标代码的过程

5. 优化阶段

优化阶段是改进生成的代码使代码更快、更节省资源。优化不仅出现在最后一个阶段在编译的整个过程中都会一直不断的去优化代码。

6. 构建系统

构建系统项目复杂源代码会分散在许多不同的文件目录当中,例如PolarDB-X的源代码会分散在不同的文件目录当中构建系统就可以把源代码进行统一的管理并且帮助程序员控制整个编译的过程。源代码文件转换成最终的可执行程序方便进行编译。常见的构建系统有CmakeAutomakeMaven

7.

是一事先编译好的代码的集合。可以由编译器在编译新程序时使用可以大幅提高编译的速度避免重新编写常见功能的代码。常见的库有Boost

8. 软件包管理器

软件包管理器是一种工具或系统在计算机操作系统上自动安装、配置、更新和删除软件包。

在编译的过程中开发者首先会写下源代码,使用GCC转换成机器代码然后借助一些构建系统比如借助C make或者Automake这样的工具去自动化整个编译的过程使用Cmake命令进行自动化的构建在编译的过程中使用boost提供一些丰富的加速编译的过程。

 

二、使用源码编译部署PolarDB-X企业版

b7d6076363d32cf01b070994f80d822.png

PolarDB-X企业版的代码是在github仓库上存储的。

1. PolarDB-X源代码结构

(1)polardbx-engine是存储节点DN的代码DN节点就是存储节点

(2)polardbx-sql是计算节点CN的代码

(3)polardbx-cdc是日志节点CDC的代码

(4)polardbx-glue是私有协议的代码。

2. 编译的过程

(1)准备环境

次使用的环境是阿里云的云服务器ECS,操作系统是CentOS7.9版本规格是2448GiB。推荐使用8核16GiB以上的规格小规格有可能导致编译不成功。并且需要使用一系列工具例如sudo、git、 make、 redhat-lsb-core等。

(2)编译

准备环境在环境上安装工具并且拉取源代码拉取结束通过Make进行自动化编译

3启动PolarDB-X

编译完成后启动PolarDB-X数据库连接登录PolarDB-X数据库

 

三、演示实例

通过ECS进行编译,首先需要安装必要的工具

569ca89f80ed3a8538cb80ad9e9440a.png

1. 工具

(1)sudo是一个命令行工具。允许普通用户以超级用户的身份去运行命令因为有一些命令只有超级用户才有权限去执行需要赋予普通用户权限

(2)git是一个分布式版本控制系统。

(3)make是很重要的一个编译过程的工具。通过单独的一个make命令可以自动化的执行整个编译的过程

(4)redhat-lsb-core工具提供LSB的支持兼容linux版本的功能

2. 执行代码

代码执行成功工具安装完成。

#创建一个名为polarx的用户

useradd  -ms /bin/bash  polarx

echo polarx: polarx|chpasswd

//这两行代码指创建用户创建密码

#接下来赋予polarx权限

echopolarx  ALL=(ALL)   NOPASSWD:ALL>>/etc/sudoers

//polarx的用户在执行命令不需要输入密码这个过程自动化和加速整个编译的过程

#接下来通过su命令切换到polar x用户

su - polarx

#最后从github仓库拉取源代码

git clone https://github.com/zhiliyao-polarx/polardbx.git

f28325828d5c75c7fb5291d44a2814a.png

3.使用make编译

#首先进入到polardbx 目录

cd polardbx

//通过cd命令进入到目录

#进入目录就直接去执行make命令。

make

//在编译过程中,make可以自动下载所有源码、工具和库等所有资源构建安装polar DB-X

直接执行make命令make命令中,安装一些必要的配置工具安装成功之后拉取各个节点的源码就是DN节点CN节点CDC节点源码逐步编译现在进行拉取polardbx-sql源码和polardbx-engine源码polardbx-engine源码比较大拉取的过程较慢需要花费一定的时间让后拉取polardbx-cdc源码,它是日志节点CDC的源码。进入编译环节首先编译DN节点其次编译CN节点最后编译CDC节点所有节点都编译完成进行最后的收尾工作。这是编译完成的截图

c0bacef7d904e1cc3d59cd753c4c40c.png

接下来进入到启动的阶段

#启动PolarDB-X数据库

./build/run/bin/polardb-x.sh start

//最后启动的cdc  start.  try  polardb-x  by进程启动成功。

#连接PolarDB-X数据库

mysql -h127.0.0.1 -P8527 -upolardbx_root

//连接成功代表编译过程完成

4e13bf0be1f30806e4dc1febe654671.png


四、课程总结

cbb2671b85eef0733ad146c24c6d656.png

(1)本节课学习编译的基本概念以及编译的主要的阶段。

(2) 学习编译所涉及的一些工具包括编译器构建系统库以及软件包管理器等。整个编译过程比较慢通过make命令来进行操作有一些环节没有看清楚但工具在整个编译过程当中都

(3)学习PolarDB-X源代码结构,DNCNCDC私有协议对应源代码的仓库

(4)通过实际演示的方式学习通过源码来部署PolarDB-X,其中重要的一点是用make命令去自动的拉取代码以及下载编译过程中所需的工具在DN、CNCDC节点都逐一的编译完成后启动polar DB-X数据库。

 

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
1天前
|
关系型数据库 MySQL 分布式数据库
[PolarDB实操课] 05.通过源码部署PolarDB-X标准版
本课程介绍如何通过源码部署PolarDB-X标准版,涵盖基于Paxos的MySQL三副本工作原理和技术特点。主要内容包括: 1. **Paxos三副本工作原理**:讲解Leader和Follower节点的角色及数据同步机制。 2. **技术特点**:强调高性能、数据不丢失(RPO=0)和自动HA切换。 3. **源码部署步骤**:详细演示从编译生成RPM包到启动DN节点的过程,包括配置my.cnf文件和初始化数据库。 4. **高可用体验**:通过三台机器模拟三副本集群,展示Leader选举和故障转移机制,确保数据一致性和服务可用性。
|
1天前
|
弹性计算 关系型数据库 PolarDB
[PolarDB实操课] 03.使用PXD部署PolarDB企业版和标准版
本课程详细介绍了如何使用PXD工具部署PolarDB-X企业版和标准版。主要内容包括: 1. **PolarDB-X企业版与标准版的区别**:讲解了两者的架构特点、性能差异及适用场景。 2. **集群机器上安装Docker环境**:指导用户在阿里云ECS实例上安装Docker,确保后续部署顺利进行。 3. **部署机上安装PXD**:介绍如何配置密钥连接、安装Python3并激活虚拟环境,最后安装PXD工具。 4. **创建并部署PolarDB-X**:通过编写拓扑文件(YAML格式),一键拉起PolarDB-X集群,并验证部署状态。
|
8月前
|
安全 druid Java
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
657 12
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
|
8月前
|
存储 DataWorks 监控
DataWorks,一个 polar db 有上万个数据库,解决方案
DataWorks,一个 polar db 有上万个数据库,解决方案
|
SQL 存储 Web App开发
PolarDB-X 分布式数据库中的外键
外键是关系型数据库中非常便利的一种功能,它通过一个或多个列为两张表建立连接,从而允许跨表交叉引用相关数据。外键通过约束来保持数据的一致性,通过级联来同步数据在多表间的更新和删除。在关系数据库系统中,大多数表都遵循外键的概念。
|
6月前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
5月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
119 5
|
5月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
122 1
|
5月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
131 0
|
6月前
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
7104 2