如何在 PolarDB - X 中进行 Online DDL|学习笔记(一)

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

开发者学堂课程【如何在PolarDB-X中进行Online DDL如何在 PolarDB - X 中进行 Online DDL】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/986/detail/14929


如何在 PolarDB - X 中进行 Online DDL

 

内容介绍

一、内容简介

二、如何在PolarDB - X中进行Online DDL

三、PolarDB - X online DDL的原理

 

一、内容简介

今天是讲PolarDB - X动手实践系列的第五期,在PolarDB - X里面怎样做ddl这件事,首先讲一下动手实践系列包括的内容,讲的是PolarDB - X社区版,也就是开源的版本,对标的是阿里云商业版本的2.0这样一个版本,面向的群体是应用开发者,架构师,dba等等,对这个产品使用感兴趣的群体,内容会围绕使用PolarDB - X整个过程当中场景化的方式还讲解怎么使用PolarDB - X 。

image.png按照使用流程前面已经讲了四节课,第一节课讲了如何使用PolarDB - X部署PolarDB - X,之后讲了怎么连接使用它,然后讲了一个与Binlog相关的,之后讲了扩缩容,今天讲解DDL。

 

二、如何在 PolarDB - X 中进行 Online DDL

1.环境准备

今演示需要的环境和之前差不多,最后是需要另外两个常见开源的系统,一个叫做普罗米修斯,另外一个是官方的,这两个做系统监控.

image.png在讲解实验之前先讲一下PolarDB - X系统的架构,PolarDB - X是一个分布式的数据库,分布式会有若干个组件来组成,具体来说,有四个核心的组件,第一个是cn,也就是分布式的计算层他会负责数据的分片,拆分的计算,以及分布事务协调这样一个角色。第二个是DN也就是存储节点,为了便于理解,大家可以简单的把它理解为mySQL,只不过是定制化的mySQL,第三个是GMS也就是原数据中心,会提供全局的时间戳维护全局的原信息等等这样一个功能,也可以将它理解为特殊角色的DN,最后一个是cdc全局Binlog日志的生成的组件,提供和mySQL Binlog完全兼容的增长日志。

2.演示

了解完前面这些内容之后,来说一下今天分享的内容,今天分享内容包括两个部分,第一个是演示,第二个是讲解一下原理,演示会看小图

image.png是这样的一个场景,首先假设业务用了PolarDB - X这样的一个数据库,业务层是用Sysbench的压测来模拟业务的操作,具体来讲就是的Sysbench的select的ID的查询以及select key就是另外一个非主件的查询,这两类查询来作为业务的负载,然后搭建了一个监控的链路,就是PolarDB - X监控的数据他涂到了普罗米修斯里面,然后再有普罗米修斯给到官方进行最终的展示,因为这个过程需要一些资源,所以证明依然按照惯例在阿里云上面ECS来进行所有组件的部署,通过这台电脑连到ECS进行相关的操作,今天演示的场景就与DDL相关,比如在业务发展的过程中最常用的DDL,想加列,加表,删表或者是加索引,删索引,在分布式的场景下,还会涉及到一些独有的DDL比如加全局IP索引然后可能你会将一个单表转成一个分布式的表,将一个单表整为广表等等这样的DDL操作今天都会演示到,这是演示的场景,讲完这些,下面就进入今天的正题,正式开始演示。

先要连接上ECS,这个ECS是一直用来做演示的ECS,进入今天的课程目录,首先看一下要建立的PolarDB - X的结构,今天依然使用K8S的部署模式来部署PolarDB - X

image.png这是他的配置文件,集群的名字叫做online DDL,有一个cdc的节点,一个cn的节点,两个dn的节点,是这样的结构,为什么有一个cn因为后面监控链路目前开源的版本还没有完全做好,目前多个cn聚合的链路还没有打通,所以就只能采集一个cn,为了便于演示把cn设置成一个,这个集群之前已经提前建好了

image.png可以看到他现在是一个running的状态,里面有一个gms,一个cn,两个DN和一个cdc,接下来做一个端口转发,把这个PolarDB - X的集群的3306这个端口给转发过来,转发完以后就可以在终端里面用mySQL client去连接上PolarDB - X,接下来再转发另外一个接口,其实在现在的PolarDB - X开源的版本中,已经有了监控数据采集的组件,他的数据可以直接吐到普罗米修斯里面,所以把监控组件8081的端口也转发出来,这样普罗米修斯端口可以去8081去收集监控数据,首先连接上ECS,然后再做端口转发

image.png这样就是两边有了端口转发的行动,接下来看一下是在同样的ECS下已经部署好的general界面

image.png现在普罗米修斯已经开始采集PolarDB - X集群里面的数据,general也会将它展示出来,大概过个30秒的样子,这个页面的监视数据就都出现了,因为功能还没有完全做完所以大家只需要关注这几个监控值,第一个是这里的逻辑的QPS当前系统的QPS是多少,第二个是rt Cdc端口的rt目前是多少现在是1.42毫秒,还有就是QPS监控的曲线图和这里rt的曲线图,这里主要关注这几个内容,监控数据已经开始正常采集了,再打开一个新的shell,去连接上PolarDB - X给大家看看连线的都有什么

image.png可以看到这里面是直接使用mySQL plant去连接上PolarDB - X

目前除了系统原信息的库外没有其他的库,首先来创建一下今天演示所需要的库,

image.png可以看到目前这个库是空的,接下来准备一下业务所需要的数据,也就是Sysbench的压测所需要的一些数据,同样这边已经把需要的一些配置写好了,准备数据的配置文件与上节课的是一样的,启动了一个K8 s的任务,这个任务用了一个Sysbench连接好了一个镜像,这个镜像会连接Online DDL的PolarDB - X的集群,在里面会创建一张表,同时在里面写16万行的数据,这是准备的过程,现在来创建一下任务

image.png可以看到,目前正在创建当中,看一下port里面的运行情况。image.png 

速度比较快,现在这个任务已经运行完了,

image.pngSysbench这张表已经创建,看一下这张表的表结构

image.png可以看到这张表结构还是比较简单的,有四列,第一列是ID,接口分别是K C pad,这样的四列,其中ID和k上面加了索引,这张表是一个分表通过hash ID表的拆分,可以看一下它的topology结构,show topology from这是PolarDB - X特有的一个C口的语法,sbtest1可以看到这张表在分库里的一些分布

image.png可以看到当前一共有16个分库,每个分库里面都有一个分表,这样就有16张表,这是目前的情况,再来看一下数据是否正确的写进去了

image.png可以看到已经有了,接下来开始业务的流量,业务的流量用了两个Sysbench的脚本,第一个脚本是他的select ID也就是在主件上一个select查询,第二个是一个select K也就是用他的k作为一个while条件做了查询,一会儿可以给大家看一下具体的SQL是什么,现在想把对应的查询跑起来,首先来创建select的ID任务

image.png可以看到select ID任务已经跑起来了,他目前的tps大概在八千七八这样的位置。image.png

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
SQL 关系型数据库 分布式数据库
PolarDB在尝试同步DDL任务时出现了问题
PolarDB在尝试同步DDL任务时出现了问题
100 1
|
SQL 关系型数据库 测试技术
PolarDB的Online DDL功能验证实验
本场景带您体验如何在PolarDB-X中进行Online DDL。
|
3月前
|
SQL 存储 关系型数据库
|
SQL 关系型数据库 测试技术
如何在PolarDB-X中进行Online DDL
《PolarDB-X 动手实践》系列第五期,本场景带您体验如何在PolarDB-X中进行Online DDL。
|
SQL 关系型数据库 MySQL
深度解析PolarDB DDL锁的优化和演进
DDL是数据库所有SQL操作中最繁重的一种,本文总结介绍了云原生数据库PolarDB中DDL全链路MDL锁治理的经验和进展,持续优化用户的使用体验,为用户打造最佳的云原生数据库。
|
存储 SQL 安全
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
10357 0
|
6月前
|
SQL 关系型数据库 测试技术
实践教程之在PolarDB-X中进行Online DDL
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
122 0
实践教程之在PolarDB-X中进行Online DDL
|
6月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB-X源码解读:分布式事务处理机制揭秘
【5月更文挑战第20天】PolarDB-X,PolarDB家族的一员,专注于大规模分布式事务处理,采用2PC协议保证ACID特性。源码解析揭示其通过预提交、一致性快照隔离和乐观锁优化事务性能,以及利用事务日志进行故障恢复。深入理解其事务处理机制对开发者掌握分布式数据库核心技术至关重要。随着开源社区的发展,更多优化方案将涌现,助力构建更强大的分布式数据库系统。
221 6
|
4月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
|
4月前
|
Oracle 关系型数据库 分布式数据库
PolarDB产品使用问题之使用pxd安装PolarDB-X出现报错,该怎么办
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。