实践教程之如何在PolarDB-X中进行Online DDL

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

本期实验将指导您使用对 PolarDB-X 进行Online DDL。

PolarDB-X 分布式数据库免费试用地址

本期免费实验地址

本期教学视频地址

前置准备

假设已经根据前一讲内容完成了PolarDB-X的搭建部署,可以成功链接上PolarDB-X数据库。

实验步骤

本步骤将带您体验PolarDB-X Online DDL特性。我们首先用Sysbench OLTP场景来模拟业务负载,之后在负载正常运行(也就是压测进行中)时进行DDL操作,同时观察DDL执行情况和负载受影响情况。

准备Sysbench OLTP场景数据

a.执行如下SQL语句,创建压测数据库sysbench_test。

CREATE DATABASE sysbench_test;

注意 :如果您遇到mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0报错,请您耐心等待一分钟后,再次执行SQL语句。

b.在实验页面,单击右上角的 + 图标,创建新的终端。

c.执行如下命令,切换到账号galaxykube。

su galaxykube

d.执行如下命令,进入到home/galaxykube目录。

cd /home/galaxykube

e.执行如下命令,下载初始化数据文件sysbench-prepare.yaml和压测文件sysbench-oltp.yaml。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/learn-some-polardb-x-main-class-5/sysbench-prepare.yaml wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/learn-some-polardb-x-main-class-5/sysbench-oltp.yaml

f.执行如下命令,运行sysbench-prepare.yaml文件,初始化测试数据。

kubectl apply -f sysbench-prepare.yaml

g.执行如下命令,获取任务进行状态。

kubectl get jobs
返回结果如下,请您耐心等待大约1分钟,当任务状态COMPLETIONS为1/1时,表示数据已经初始化完成。

a1.jpg

开始压测

a.执行以下命令,运行sysbench-oltp.yaml文件,开始压测。

kubectl apply -f sysbench-oltp.yaml

b.执行如下命令,查找压测脚本运行的POD。

kubectl get pods
返回结果如下, 以'sysbench-oltp-test-'开头的POD即为目标POD。

b2.jpg
c.执行如下命令,查看QPS等信息。

说明 :您需要将命令中的目标POD替换为上一步骤中以'sysbench-oltp-test-'开头的POD。

kubectl logs -f 目标POD
返回结果如下,您可以查看到QPS等信息。
b3.jpg

进行Online DDL操作

注意 :如下子步骤请您在终端二中进行DDL操作,并同时在终端三中观察压测QPS等信息的变化情况。

a.执行如下SQL语句,使用数据库sysbench_test。

USE sysbench_test;

b.执行如下SQL语句,查看sbtest1表结构。

show create table sbtest1;

c.执行如下SQL语句,将sbtest1表增加一列。

alter table sbtest1 add column x char(20) not null default '' after c;

d.执行如下SQL语句,将sbtest1表删除一列。

alter table sbtest1 drop column x;

e.执行如下SQL语句,将sbtest1表添加全局二级索引。

create global index k_2 on sbtest1(k) dbpartition by hash(k);

f.执行如下SQL语句,将sbtest1表删除全局二级索引。

drop index k_2 on sbtest1;

g.执行如下SQL语句,将分表调整为单表。

alter table sbtest1 single;

h.执行如下SQL语句,查看sbtest1表的表拓扑。

show topology from sbtest1;

i.执行如下SQL语句,将单表调整为分表。

alter table sbtest1 dbpartition by hash(id);

j.执行如下SQL语句,查看sbtest1表的表拓扑。

show topology from sbtest1;

可以看到Online DDL执行成功,表拓扑发生了变化。

如果您想了解更多有关PolarDB-X DDL知识,详情请参见如下内容

PolarDB-X Online Schema Change
PolarDB-X:让“Online DDL”更Online
PolarDB-X分布式MDL死锁检测
PolarDB-X源码解读(六):分布式死锁检测
PolarDB-X DDL也要追求ACID?

本文来源:PolarDB-X知乎机构号

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
6天前
|
关系型数据库 分布式数据库 PolarDB
PolarDB 开源基础教程系列 7.2 应用实践之 跨境电商场景
本文介绍了如何在跨境电商场景中快速判断商标或品牌侵权,避免因侵权带来的法律纠纷。通过创建品牌表并使用PostgreSQL的pg_trgm插件和GIN索引,实现了高性能的字符串相似匹配功能。与传统方法相比,PolarDB|PostgreSQL的方法不仅提升了上万倍的查询速度,还解决了传统方法难以处理的相似问题检索。具体实现步骤包括创建品牌表、插入随机品牌名、配置pg_trgm插件及索引,并设置相似度阈值进行高效查询。此外,文章还探讨了字符串相似度计算的原理及应用场景,提供了进一步优化和扩展的方向。
35 11
|
6天前
|
SQL 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.5 应用实践之 TPCH性能优化
PolarDB在复杂查询、大数据量计算与分析场景的测试和优化实践.
33 7
|
6天前
|
搜索推荐 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.3 应用实践之 精准营销场景
本文介绍了基于用户画像的精准营销技术,重点探讨了如何通过标签组合快速圈选目标人群。实验分为三部分: 1. **传统方法**:使用字符串存储标签并进行模糊查询,但性能较差,每次请求都需要扫描全表。 2. **实验1**:引入`pg_trgm`插件和GIN索引,显著提升了单个模糊查询条件的性能。 3. **实验2**:改用数组类型存储标签,并结合GIN索引加速包含查询,性能进一步提升。 4. **实验3**:利用`smlar`插件实现近似度过滤,支持按标签重合数量或比例筛选。
26 3
|
6天前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
29 4
|
1月前
|
存储 SQL 缓存
PolarDB-X 在 ClickBench 数据集的优化实践
本文介绍了 PolarDB-X 在 ClickBench 数据集上的优化实践,PolarDB-X 通过增加优化器规则、优化执行器层面的 DISTINCT 和自适应两阶段 AGG、MPP 压缩等手段,显著提升了在 ClickBench 上的性能表现,达到了业内领先水平。
|
2月前
|
SQL 关系型数据库 分布式数据库
基于PolarDB的图分析:银行金融领域图分析实践
本文介绍了如何使用阿里云PolarDB PostgreSQL版及其图数据库引擎(兼容Apache AGE,A Graph Extension)进行图数据分析,特别针对金融交易欺诈检测场景。PolarDB PostgreSQL版支持图数据的高效处理和查询,包括Cypher查询语言的使用。文章详细描述了从数据准备、图结构创建到具体查询示例的过程,展示了如何通过图查询发现欺诈交易的关联关系,计算交易间的Jaccard相似度,从而进行欺诈预警。
基于PolarDB的图分析:银行金融领域图分析实践
|
2月前
|
SQL 人工智能 自然语言处理
PolarDB-PG AI最佳实践 1:基础能力实践
Polar_AI 是 PolarDB 数据库的 AI 扩展,集成了先进的人工智能模型和算法,使数据库能够执行机器学习和自然语言处理任务。它支持 PostgreSQL 及 Oracle 兼容版本,通过标准 SQL 轻松调用 AI 模型,具备简单易用、灵活可定制、无缝数据融合、数据安全和高性能等优势。用户可以通过 SQL 快速实现文本转向量、情感分类等功能,并能自定义扩展 AI 模型。
|
3月前
|
关系型数据库 Linux 分布式数据库
rpm安装polarDB-PG的实践
安装PolarDB for PostgreSQL的实践,需要帮助到有同样需要的小伙伴
244 3
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
4月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。

相关产品

  • 云原生数据库 PolarDB