本地部署 PolarDB-X(三)|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 快速学习本地部署 PolarDB-X(三)

开发者学堂课程【PolarDB-X 开源系列课程本地部署 PolarDB-X(三)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/1032/detail/15140


本地部署 PolarDB-X(三)

五、四种方式部署 PolarDB-X 

下面就是我们来开始做一些实操实操今天是一个入门的课程,在大家能做后续的一系列实验的前提,都是首先将 PolarDB-X 给部署起来所以我们今天先来讲一下如何 PolarDB-X 给部署起来。

我们这次的训练营是通过云起实验室,也就是阿里云给大家提供的一个免费获取阿里云的资源来做一些实验的场合,让大家来体验一下 PolarDB-X 的各种的部署方式包括后面的几节课最终客户实操的部分都是通过云起实验室来进行的

大家可以扫描这个二维码,就会跳转到我们 PolarDB-X 云体实验室的入口页面今天展示部署的部分,我就以实验里面如何一键部署安装出了 PolarDB-X 来做展示的内容因为之前可能有些同学是没有操作过或者没有使用过云起实验室的,可能对这个环境还不是非常熟悉。

所以这边就直接讲第一个的内容,在这个云栖实验室里面直接进行操作

image.png

那么进入云起实验室界面之后,首先大家要点一下加入这个课程,后续的实验才能做加入之后今天比如说讲的是部署 PolarDB-X那么就可以点一下这个课程的第一个实验开始实验如果之前你是没有阿里云这个开发者账号的,你可以注册一个注册之后登录进来就ok了,注册是免费的,后面做这些实验也是免费的。

进来之后我们就会看到实验室它的一个最开始的页面

它的页面左边是它的说明的部分,比如说实验手册就是你要跟着它怎么样去一步步的操作完成这个实验。第二部分就是云产品的资源,就是做这个实验是要在阿里云提供免费的 ECS 上来做的,这里面会将云产品的资源的息给到你最后是实验报告,你做完之后可以写一下你做这个实验的一些体会收获或者是吐槽都行,可以写个实验报告

现在就来实操一下这个实验正常的话你看到的应该是进入实验或者开始实验,在这个页面的右上角。因为我这提前已经做过一个实验,所以显示就是再次实验有任何影响

首先先点一下右上角开始实验这样一个按钮点完之后,页面中间创建资源规则按钮就变成可点击的状态,所以做这个实验的第一步就是你要首先创建一下资源创建资源就是在云上面去创建一个免费的 ECS 的过程,它需要一点点的时间,这时候大家需要稍微等一下,一会资源创建好之后,我们就可以看一下左边的实验手册了。我们现在可以将这个上面这部分被收起来,让手册清晰展现出来。

现在资源已经创建出来了,左边是 ECS 的基本的信息大家可以忽略它右边是我们已经获得了一个连接到 ECS 的Shall 的窗口,所以刚才在开始之前有的同学说是不是门槛比较高,是不是从0开始就可以进行最好有一点点Share 的常识原因就是因为我们后续的一些实验都是在Shall 里面进行操作的,所以如果你之前稍微有一些基本的操作对这个东西有个概念的话,会让你觉得这个地方没有那么的陌生或者担忧。下面我们就开始进行实验的部分,刚才就是创建资源是这个实验的第一部分
创建完成之后,我也会跳转到它的第二步。第二步就是安装我们的依赖,我们今天讲的 PolarDB-X 一共有种部署方式第一种就是直接用 Docker来本地跑一个容器第二是我们提供的一键安装的一个工地叫PXD 以及用PXD 来拉起一个通过 PolarDB-X 的示例或者叫做集群第三种方式就是用K8S Operater的方式最后一种是码编译。

1. 首先我们来体验一下,用 Docker 进行 PolarDB-X 安装过程。首先我们在机器上安装一下 Docker 。如果之前你对 Docker 或者 K8S 这些容器的东西不是很熟悉的话,这里也可以作为简单了解这些东西的一个场合,如果你没什么概念的话,你可以将 Docker 简单的理解成是在你的机器上跑的一个进程,然后你可以把它想象成是conmact这样一种东西,你的应用呢就是里面的沃尔包,然后外面的这一层,就是对应的jshocker key 这样的简单理解。最后 comtact再加上沃尔包搞起来之后是一个进程,它是你的应用,那么这就是 Dcoker 的一些运行是再加上打的镜像包最后跑起来是一个完整的进程,它就代表了 PolarDB-X 这个系统

到后台安装可能稍微需要一些时间,我们稍微等他一下。安装完成后,启动,启动完毕这样就是在 ECS 上面已经成功的跑起了Docker 的环境。下面就来把 PolarDB-X 给跑起来。关于 Docker ,首先你不管是想跑一个什么样的应用,第一步都需要将应用所对应的一个 Docker 镜像给拉到你的本地,所以它对应的命令就是 Docker pull 对应你镜像的名称。所以现在我们首先将做 PolarDB-X 的镜像给达到本地这个镜像的获取的过程是在线进行的,所以如果镜像比较大的话,它需要一些时间,具体时间的话就依赖于镜像大小以及网络的速度。通常来说在一个生产环境里面,如果你们是融机化的话,

image.png

就会有自己本地搭建的镜像仓库来减少拉取镜像的时间。现在 PolarDB-X 的镜像已经获取完毕了,下一步就是可以将 PolarDB-X 溶剂给运行起来无脑复制左边的教程里面的命令,然后把它给粘贴到右边在窗口里面。

简单来看一下这个命令,启动容器就是 Docker,容器的名字叫做 Some-polardb-x -p 的意思就是将容器内部8527端口映射到宿主机,这样在本机就可以直接通过8527连上 PolarDB-X 这个数据库后面就是我们的镜像的名称我们来启动一下 PolarDB-X容器的启动过程稍微需要一点点的时间,所以我们这边就耐心的等待一下。那如果不熟悉 Docker 的同学的话, Docker 有几个常用的命令

image.png

第一个就是docker images,意思就是展示我本机目前所有的镜像,因为刚才我们获取了一个镜像,所以你可以看到在本机目前只有 PolarDB-X 这么一个镜像,他会告诉你他的ID是什么,然后这个镜像是在两周之前打包好的,镜像大小1.49个GB,这是第一个命令 Docker images;第二个是 Docker ps,如果你对 shall 的命令比较熟悉的话,类似于ps这样的命令,就是将当前正在运行的容器进行一个展示如果你的容器正在运行,因为各种原因挂了, Docker ps是没有的,可以看到当前是有一个容器正在运行的,也就是我们刚刚启动的 PolarDB-X 这个群。那如果你想看到所有的容器,包括已经挂的容器,那么后面可以加一个 -a 它就类似于Linux的那个一个命令叫ls-a参数可以将包已经挂掉的容器也展示出来刚才我们展示另外一个 Docker pull 和 Docker run,这些都是 Docker 里面常用的一些命令。

因为 PolarDB-X 是一个兼容 MySQL 的分布数据库,所以我们可以通过 MySQL  Client 直接连上 PolarDB-X 来进行一些常规的操作 PolarDB-X 也好或者TML 、 DML。所以我们现在本地 MySQL 安装好之后,看一下这个 MySQL 安装的是8.0版本,确认 MySQL 安装完成之后,通过 MySQL 的命令连接一下 PolarDB-X 。可以看到这个命令就是 MySQL 连接本地的8527这个端口用户名是polardbx_root,密码是123456。我们试一下好,我们现在已经可以成功的连接到 PolarDB-X可以看到的是通过 Select Version ,我们会返回一个版本号这个跟 MySQL  是不一样的。所以首先说明这不是 MySQL ,它就是连上一个 PolarDB-X 的实例连接完之后,我们就可以做一些常规的操作,在这个手册里面也给了大家一些基本的体验 PolarDB-X 的一些 SQL ,比如说第一条SQL是你可以去从Information Schemata里面去获取一些系统原数据的信息,比如说这条 SQL 就是查一下这个实例里面都有些库,它会反馈给你目前有两个库都是系统库。

第二个命令我们可以来创建一个自己的数据库,名字叫做polardbx_example创建的时候我们来加一个参数,创建数据库的模式目前有两种方式,一个是 partition ,一个是 auto 这里我们选择 auto 就是刚才我在讲前面的内容的时候所提到的透明水平扩展所谓的透明这边如果大家选择 auto 的话,那跟分布式相关的一些 PolarDB-X 会透明,也就是自动的帮你给处理好。这里我们来创建一下它,创建完成之后,尝试在里面去建一张表在这个教程里面它建表的时候显示指明了说要用哪个列来进行拆分,然后拆几个分片

这里的话就是用ID进行一个 hash 的拆分,拆成片。那么未来就证明说,在透明模式下,也就在是auto的这种模式下,我们可以不用太关心具体怎么分,所以我们将表语里面的partition部分给去掉,来进行对比首先我们建一个没有去掉的一个去掉的没有去掉的那个表叫 example ,去掉的加一个example 2

两张表现在都创建好了,接下来会有一些插入数据的操作,你会发现跟 MySQL 一模一样,没有什么特殊这里我就不进行了接下来有一个大家没见过的语句叫做 show topology from example (一个 table name ,一个表名)意思就是展示一下这张表的 Took 结构。

image.png

因为在单机里的表一定是在本地存,在分布式里面你的表可能会分成若干个分片,所以这个 SQL 就是用来展示这张表到底有几个分片我们来进行一下尝试首先对第一张表example,也就是说显示指定拆分算法以及拆分的分片处理的这样一张表来进行查看,可以看到它被分成了个分片;接下来我们再对刚才没有显示的指定拆分算法和拆分分片数的表,也就是 example 2进行图谱的展示。会发现它同样也是被拆成了个分片,也就是说 PolarDB-X 可以自动的帮你去处理这些分布式的内容来降低学习和使用门槛。

另外一个功能就是前面提到的 CDC如果你对 MySQL 比较熟悉的话,  My SQL 里面关于 binlog 有一些指令,比如说它有这样的一个指令来查看当前节点的一个状态,也就是目前我的binlog它已经记录到什么位置了,这样一个命令叫做 show master status 。可以看到当前它的 binlog 是写到了 binlog 000001这个文件里面,点已经写到了698。我们可以看一下目前这个 binlog 里面都有哪些事件另外一个命令就是 show binlog events ,in这个文件from 4位置之后我们来看一下,可以看到它会将后续的一些 binlog 的事件都进行了一个解析,这两个命令是跟 MySQL 里面的操作是完全一样的,就是它的语法和行为都是完全兼容的。另外 PolarDB-X 的一些指令,比如说你想看一下当前这个系统当中 DN 的节点的情况,你可以通过自己的show storage命令来查看

他会告诉你当前有两个 storage ,也是两个DN 节点一个就是 DN ,一个就是GMS如果你看他的IP的话,发现他们是一样的也就是说当前在容器化部署的方式的时候,我们是将 GMS和 DN 通过共享一个节点的方式来现的这个仅限于就是我们一体化的容器,也就是刚才的 Docker ,一个容器可以拉几个这样的方式。DN 和GMS是共享的,还有一些其那我这边就不再展示了,现在我们就退出 MySQL 。那这样我们就通过 Docker 一键拉取 Docker 这样一个方式,在这台机器上运行了一个 PolarDB-X实例,里面做了一些 SQL 基本的操作,最后我们可以将这个例给停掉,就是 Docker 另外一个常用的命令Docker stop。你可以将某个容器停掉

接下来我们再来看一下第二种部署方式,通过 PXD 提供的一键部署的工具来进行部署。PXD 是我们开发认为就是一个Python的脚本来体验一下,同样我们参考实践手册,在探索里面建一个虚拟的环境建好之后进入这个虚拟的环境将Python的工具进行升级整理完之后 python的环节我们就准备好了接下来 pip 工具来装一下 PXD 工具。如果大家对Python或者是Python的虚拟环境,或者对pip这三个东西不是很熟悉的话也没关系,只要无脑的按照这个教程去操作一下就行了,反正就是装了一堆依赖,然后做了一个环境,装了一个工具,就是这样的。这样我们在本地安装好 PXD 一键部署 PolarDB-X 的工具之后,就可以用教程里面的一个命令叫做 PXD tryout简单的试用一下 PolarDB-X 的一个命令

创建一个叫做tryout PolarDB-X 示例,接下来我们 PXD 工具就会把创建 PolarDB-X 所需要的几个镜像CN的镜像, DN 和GMS的镜像,再加上CDC的镜像,来进行一个远程的获取获取获得到本地之后,再拉起一个 PolarDB-X 的集在这个集群里面,包含一个CN一个 DN 、还有一个GMS和一个CDC镜像的获取稍微需要一些时间,大家需要稍微等一下。关于这个实验室还有另外一个功能,就是在页面的右上方有一个加号,这个加号的意思是要打开一个新的终端有些情况下,比如说后续的有些实验能需要在多个口当中进行一个操作,那这个时候你就可以点一下这里的加号。

在这个时候,我们再稍微练习一下刚才学的几个关于 Docker 的命令第一个是 Docker images,查看一下本机所有的镜像,你可以看到现在我已经有两个镜像了,一个叫刚才获取的 PolarDB-X另外一个呢叫做Galaxy SQL ,也就是我们CN单独的镜像; Docker ps现在已经没有容器在运行了,加一个 -a 会发现 PolarDB-X 刚才我们创建的那个东西还在只不过现在已经停止运行了,就是 Docker p -a它的效果。可以看到现在我们又获取了一个新的镜像,叫做 Galaxy engine ,也就是我们的 DN 节点所用的镜像

如果你对 Docker 的镜像概念比较了解的话,会发现我们刚才在创建直接用 Docker 跑起一个 PolarDB-X 的时候,所使用的是一个 PolarDB-X 镜像那么 PXD 这个工具它又使用了另外的其他的镜像,也就是它们镜像其实是不行的。所以在 PXD 这个工具,他依然要有再次获取镜像的操作。

可以看到我们已经获取了 Galaxy SQL  CN ,还有Galaxyengine DN ,还有Galaxy CDC 这样三个镜像,还包括一些其他辅助工具的镜像,目前我们的 PXD 配套工具都自动化把它们给获取掉了。这个时候我们再来看一下创建的进度,已经进入了创建jms 节点步骤。这里这个过程稍微需要一些时间,咱们大家再稍微等一下我这次之所以用云起实验室来直接给大家进行一个演示,虽然有些部分它会需要等网络或者其他一些操作需要时间,但是对没有接触过起实验室的同学来说,会有一个比较好的感受,这样在自己去上手操作的时候,不会对这个环境感觉到陌生。现在我们的GMS已经创建好,在里面加一些基本的原数据的信息创建账号,做完之后会开始创建我们的 DN, DN 创建完成之后会进CN的创建。现在 CN 和CDC都创建完了,那么它会等待整个系统到 ready 状态再稍微给他一些时间。现在 PXD 就将try out的 PolarDB-X 示例给创建出来了,最后他会输出一句提醒可以通过这样一个命令连接到刚才创建的实例,可以看到 PXD 创建的一个 PolarDB-X 的系统账号密码是随机的,他会仅仅提醒了一次,所以如果后续你还要用的话,可以把这个密码给记下来。现在我们就通过给这个命令就连接到了 PolarDB-X 里面那这个实例跟刚才 Docker 容器创建的在体验上是一致的,同样可以通过创建一个auto模式的数据库,一些表,插入一些数据,看一下它的拓扑,然后看一下 binlog 的信息等等操作那这里呢我就不再展示了。同时 PolarDB-X 还提供另外两种方式,一个就是后面会说用K8S来进行部署,还有一个就是源码部署。这两步呢比较耗时间,但是按照这教程的话都是可以完成的,然后限于时间关系,我这边就不再进行展示了,大家在课后的实验的时候,可以自己进行一个更加完整的体验。那以上就是今天这个我的讲述部分。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
5月前
|
存储 关系型数据库 分布式数据库
PolarDB产品使用合集之PolarDB支持哪些存储引擎
PolarDB是阿里云推出的一种云原生数据库服务,专为云设计,提供兼容MySQL、PostgreSQL的高性能、低成本、弹性可扩展的数据库解决方案,可以有效地管理和优化PolarDB实例,确保数据库服务的稳定、高效运行。以下是使用PolarDB产品的一些建议和最佳实践合集。
|
SQL 存储 弹性计算
视频 -RDS 基础概念介绍(二)| 学习笔记
快速学习视频 -RDS 基础概念介绍。
视频 -RDS 基础概念介绍(二)| 学习笔记
|
弹性计算 运维 Kubernetes
PolarDB-X 的部署与运维(二)| 学习笔记
快速学习 PolarDB-X 的部署与运维。
PolarDB-X 的部署与运维(二)| 学习笔记
|
存储 SQL 运维
PolarDB-X 的部署与运维(一)| 学习笔记
快速学习 PolarDB-X 的部署与运维。
PolarDB-X 的部署与运维(一)| 学习笔记
|
SQL 存储 运维
PolarDB-X 的部署与运维(三)| 学习笔记
快速学习 PolarDB-X 的部署与运维。
PolarDB-X 的部署与运维(三)| 学习笔记
|
存储 SQL 运维
视频 -RDS 基础概念介绍(一)| 学习笔记
快速学习视频 -RDS 基础概念介绍。
视频 -RDS 基础概念介绍(一)| 学习笔记
|
存储 SQL 固态存储
视频 -RDS 基础概念介绍(四)| 学习笔记
快速学习视频 -RDS 基础概念介绍。
视频 -RDS 基础概念介绍(四)| 学习笔记
|
存储 运维 监控
视频 -RDS 基础概念介绍(三)| 学习笔记
快速学习视频 -RDS 基础概念介绍。
视频 -RDS 基础概念介绍(三)| 学习笔记
|
SQL 存储 Kubernetes
本地部署 PolarDB-X(二)|学习笔记
快速学习本地部署 PolarDB-X(二)
本地部署 PolarDB-X(二)|学习笔记
|
存储 运维 关系型数据库
本地部署 PolarDB-X(一)|学习笔记
快速学习本地部署 PolarDB-X(一)
本地部署 PolarDB-X(一)|学习笔记