重磅更新|PolarDB分布式版V2.3 集中式和分布式一体化开源发布

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 深度干货解析
作者:阿里云数据库PolarDB分布式团队 七锋


导读1:架构简介

阿里云瑶池旗下的云原生数据库PolarDB分布式版(PolarDB for Xscale,简称PolarDB-X)采用Shared-nothing与存储分离计算架构进行设计,系统由5个核心组件组成。



1. 计算节点(CN, Compute Node)

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


2. 存储节点(DN, Data Node)

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


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

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


4.日志节点(CDC, Change Data Capture)

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


5. 列存节点(Columnar)

列存节点负责提供列式存储数据,基于行列混存+分布式计算节点构建HTAP架构,预计24年4月份会正式开源。可参考PolarDB-X列存索引(Columnar Index)文档:


https://help.aliyun.com/zh/polardb/polardb-for-xscale/overview

开源地址:https://github.com/polardb/polardbx-sql


导读2:版本说明


梳理下PolarDB-X开源脉络:


▶︎ 2021年10月,在云栖大会上,阿里云正式对外开源了云原生分布式数据库PolarDB-X,采用全内核开源的模式,开源内容包含计算引擎、存储引擎、日志引擎、Kube等。


▶︎ 2022年1月,PolarDB-X正式发布 2.0.0 版本,继 2021 年 10 月 20 号云栖大会正式开源后的第一次版本更新,更新内容包括新增集群扩缩容、以及Binlog生态兼容等特性,兼容 maxwell 和 debezium 增量日志订阅,以及新增其他众多新特性和修复若干问题。


▶︎ 2022年3月,PolarDB-X正式发布 2.1.0 版本,包含了四大核心特性,全面提升 PolarDB-X 稳定性和生态兼容性,其中包含基于Paxos的三副本共识协议


▶︎ 2022年5月,PolarDB-X正式发布 2.1.1 版本,重点推出冷热数据新特性,可以支持业务表的数据按照数据特性分别存储在不同的存储介质上,比如将冷数据存储到Aliyun OSS对象存储上。


▶︎ 2022年10月,PolarDB-X正式发布 2.2.0 版本,这是一个重要的里程碑版本,重点推出符合分布式数据库金融标准下的企业级和国产ARM适配,共包括八大核心特性,全面提升 PolarDB-X 分布式数据库在金融、通讯、政务等行业的普适性。


▶︎ 2023年3月,PolarDB-X正式发布 2.2.1 版本,在分布式数据库金融标准能力基础上,重点加强了生产级关键能力,全面提升PolarDB-X面向数据库生产环境的易用性和安全性,比如:提供数据快速导入、性能测试验证、生产部署建议等。


▶︎ 2023年10月份,PolarDB-X正式发布 2.3.0 版本,重点推出PolarDB-X标准版(集中式形态),将PolarDB-X分布式中的DN节点提供单独服务,支持paxos协议的多副本模式、lizard分布式事务引擎,可以100%兼容MySQL。同时在性能场景上,采用生产级部署和参数(开启双1 + Paxos多副本强同步),相比于开源MySQL 8.0.34,PolarDB-X在读写混合场景上有30~40%的性能提升,可以作为开源MySQL的最佳替代选择。




1. 集中式与分布式


1.1 架构形态

PolarDB-X V2.3新增了标准版(集中式形态),因此后续的PolarDB-X开源形态主要分为:



  • PolarDB-X标准版,主打集中式架构,支持单机MySQL形态(100%兼容MySQL),基于自研分布式共识算法(X-Paxos)提供RPO=0的数据库能力。


  • PolarDB-X企业版,主打分布式架构,高度兼容MySQL生态,支持强一致分布式事务和分布式并行查询,支持分布式水平扩展,可以从最小1个节点(集中式)扩展到1024个节点(分布式),构建集中式和分布式一体化的架构能力,后续的开源版本会发布HTAP行列混存架构,支持一键构建列存副本,通过行列混合查询全面加速在线分析能力。


架构形态的特点和选型建议:



1.2 快速部署和体验


PolarDB-X标准版采用一主一备一日志的三节点架构,性价比高,通过多副本同步复制,确保数据的强一致性。面向具备超高并发、复杂查询及轻量分析的在线业务场景。


现在我们来快速部署一个PolarDB-X标准版集群,它仅包含1个由三副本组成的DN节点。执行以下命令创建一个这样的标准版集群:


▶︎ 基于k8s部署标准版


echo "apiVersion: polardbx.aliyun.com/v1kind: XStoremetadata:  name: quick-startspec:  config:    controller:      RPCProtocolVersion: 1  topology:    nodeSets:    - name: cand      replicas: 2      role: Candidate      template:        spec:          image: polardbx/polardbx-engine-2.0:latest          resources:            limits:              cpu: "2"              memory: 4Gi    - name: log      replicas: 1      role: Voter      template:        spec:          image: polardbx/polardbx-engine-2.0:latest          resources:            limits:              cpu: "1"              memory: 2Gi"| kubectl apply -f -


你将看到以下输出:

xstore.polardbx.aliyun.com/quick-start created


使用如下命令查看创建状态:

$ kubectl get xstore -wNAME          LEADER                    READY   PHASE     DISK      VERSION   AGEquick-start   quick-start-4dbh-cand-0   3/3     Running   3.6 GiB   8.0.18    11m


注意:生产环境部署时建议内存>=8GB,

参考:https://doc.polardbx.com/deployment/topics/environment-requirement.html

▶︎ 基于pxd部署标准版


version: v1
type: polardbx
cluster:  name: pxc_test
  dn:    image: polardbx/polardbx-engine-2.0:latest
    replica:1    nodes:- host_group:[172.16.201.11,172.16.201.11,172.16.201.11]    resources:      mem_limit:2G


说明:replica数据节点数目,标准版中默认设置为1,分布式形态可以设置为多个。


执行如下命令,即可在集群内一键部署PolarDB-X:


pxd create-file polardbx.yaml


部署完成后,pxd会输出PolarDB-X集群的连接方式,通过MySQL命令行即可登录PolarDB-X数据库进行测试。



1.3 性能测试


PolarDB-X标准版集中式实例,基于Lizard分布式事务系统优化事务并发能力,采用生产级部署和参数(开启双1+多副本复制),相比于开源MySQL 8.0.34,PolarDB-X在读写混合场景上有30~40%的性能提升。

详细性能测试情况如下:



▶︎ 场景1:sysbench,表16张,单张表大小1千万



▶︎ 场景2:TPC-C,1000仓



▶︎ 场景3:对比开源MySQL 8.0.34(采用相同的主机硬件部署)




更多性能数据可参考文档:


1)Sysbench 测试报告 · PolarDB-X产品文档https://doc.polardbx.com/performance/centralized/sysbench-performance.html


2)TPC-C 测试报告 · PolarDB-X产品文档

https://doc.polardbx.com/performance/centralized/tpcc-performance.html



2. MySQL兼容性


PolarDB-X V2.3版本在分布式形态上,继续完善MySQL兼容性,降低用户从MySQL迁移的使用门槛。


2.1 分区表

MySQL的分区表功能是指将一个大表拆分成多个较小的逻辑单元,每个单元被称为分区,并将这些分区存储在不同的物理存储介质上,这种分区机制非常贴合分布式的分区理念。因此,PolarDB-X的分区表全面兼容并扩展MySQL分区表的语法,将MySQL的多个分区扩展到了分布式节点中,基于分布式的多节点进一步提高了并发能力。PolarDB-X分区表支持常见的分区方式:

1. 范围分区(Range、Range Columns):根据列的范围将表的数据进行分区。可以根据某个列的数值范围(如日期、价格等)将数据分布到不同的分区中。

2. 列表分区(List、List Columns):根据列的值列表将表的数据进行分区。可以将特定列的值匹配到预定义的分区列表中,每个分区可以包含多个值。

3. 哈希分区(Hash、Key):根据列值的哈希结果将表的数据进行分区。哈希分区将表的数据按照哈希算法将数据均匀地分布到不同的分区中。

PolarDB-X除了可以对表进行一级分区外,还可以对分区进行二级分区。二级分区是在一级分区的基础上再次将数据进行细分,一级分区与二级分区是完全正交的关系,支持使用任意两种分区策略进行组合,组合分区的数目支持达36种。同时在PolarDB-X中,二级分区可以分为模板化分区非模板化分区两种方式。


1. 模板化分区(Template-based Partitioning)


模板化分区是指通过定义一个模板来创建二级分区。模板包含了一系列分区规则,用于指定每个一级分区的子分区数量和名称。使用模板化分区,可以快速创建具有相同结构的二级分区。以下是一个示例,展示了使用模板化分区创建二级分区的语法:


CREATETABLE partitioned_table (    ...
)PARTITION BY RANGE COLUMNS(column1)SUBPARTITION BY HASH(column2)SUBPARTITIONS 4SUBPARTITION TEMPLATE (    SUBPARTITION s1,    SUBPARTITION s2,    SUBPARTITION s3,    SUBPARTITION s4
)(    PARTITION p1 VALUES LESS THAN (100),    PARTITION p2 VALUES LESS THAN (200),    ...
);


在上述示例中,通过SUBPARTITION TEMPLATE关键字定义了一个二级分区模板,指定了每个一级分区的四个子分区名称。然后在每个一级分区中,通过指定SUBPARTITION TEMPLATE将使用相同的子分区模板。

2. 非模板化分区(Non-template-based Partitioning)

非模板化分区是指手动为每个一级分区指定子分区的数量和名称。使用非模板化分区,可以更加灵活地为每个一级分区创建不同数量和名称的子分区。以下是一个示例,展示了使用非模板化分区创建二级分区的语法:

CREATETABLE partitioned_table (    ...
)PARTITION BY RANGE COLUMNS(column1)SUBPARTITION BY HASH(column2)SUBPARTITIONS (    PARTITION p1 VALUES LESS THAN (100)(        SUBPARTITION s1,        SUBPARTITION s2,        SUBPARTITION s3,        SUBPARTITION s4
),    PARTITION p2 VALUES LESS THAN (200)(        SUBPARTITION s5,        SUBPARTITION s6,        SUBPARTITION s7,        SUBPARTITION s8
),    ...
);


在上述示例中,通过直接为每个一级分区指定了不同数量和名称的子分区,而不使用模板来定义。


PolarDB-X模板化分区和非模板化分区都有其优势和用途。模板化分区适合创建具有相同结构的分区表,可以减少创建表的工作量。非模板化分区则更加灵活,可以根据具体需求为每个一级分区创建不同的子分区数量和名称。传统的分库分表定义方式是一个特例的模板化二级分区的定义(每个分库下有相同的分表数量),PolarDB-X新版本支持了完整的分布式分区表能力,可以结合非模板化分区更好的优化分布式热点。


结合一个实际的例子来体验下非模板分区的好处:交易订单管理系统,整个平台服务不同品牌的众多卖家,不同卖家之间订单量差异比较大,会出现比较明显的大卖家的情况,大卖家愿意成为VIP付费会员期望独享资源,小卖家使用免费共享资源。


参考文档:典型场景 | PolarDB分布式版如何支撑SaaS多租户

/* 一级分区 LIST COLUMNS + 二级分区HASH分区 的非模板化组合分区 */CREATETABLE t_order /* 订单表 */( id bigintnotnull auto_increment, sellerId bigintnotnull, buyerId bigintnotnull, primary key(id))PARTITION BY LIST(sellerId/*卖家ID*/)/*  */SUBPARTITION BY HASH(sellerId)(  PARTITION pa VALUESIN(108,109)    SUBPARTITIONS 1/* 一级分区 pa 之下有1个哈希分区, 保存大品牌 a 所有卖家数据 */,  PARTITION pb VALUESIN(208,209)    SUBPARTITIONS 1/* 一级分区 pb 之下有1个哈希分区, 保存大品牌 b 所有卖家数据 */,  PARTITION pc VALUESIN(308,309,310)    SUBPARTITIONS 2/* 一级分区 pc 之下有2个哈希分区, 保存大品牌 c 所有卖家数据 */,  PARTITION pDefault VALUESIN(DEFAULT)    SUBPARTITIONS 64/* 一级分区 pDefault 之下有64个哈希分区, 众多小品牌的卖家数据 */);

基于上述的LIST+HASH非模板化二级分区,它能给应用直接带来的的效果是:


  • 对于大品牌的卖家(相当一个租户),可以将数据路由到单独的一组分区;


  • 对于中小品牌,可以将数据按哈希算法自动均衡到多个不同分区,从而避免访问热点,比如default默认分配64个分区,支持所有的免费用户。而付费用户结合规模量,二级分区为1或者2即可,基于非模板化分区实现精细化数据分布。


2.2 生成列


MySQL的生成列功能是指在创建表时,使用虚拟列或计算列的方式将一个或多个列添加到表中,可以在创建表时使用GENERATED ALWAYS AS关键字来定义。通过使用表达式,可以使用各种数学、逻辑和字符串函数来计算列的值。生成列可以是虚拟列(VIRTUAL)或存储列(STORED)。PolarDB-X新版本支持MySQL生成列的相关语法和功能。


参考文档:PolarDB-X 生成列语法 https://help.aliyun.com/zh/polardb/polardb-for-xscale/generate-columns


col_name data_type [GENERATED ALWAYS]AS(expr)[VIRTUAL | STORED | LOGICAL][NOTNULL|NULL][UNIQUE [KEY]][[PRIMARY] KEY][COMMENT 'string']


生成列有以下三种类型:


  • VITRUAL:生成列的值不存储,每次读取该列时由存储节点DN计算,不占用存储空间。说明如果不指定关键字,默认创建VITRUAL类型的生成列。


  • STORED:生成列的值在数据行插入或更新时由存储节点DN计算,并将结果储存下来,需要占用存储空间。


  • LOGICAL:与STORED类型相似,生成列的值在数据行插入或更新时计算,区别是生成列的值在计算节点CN计算,随后以普通列的形式存储到DN中。该类型的生成列可以作为分区键使用。


生成列的例子:


CREATETABLE `t1` (    `a` int(11)NOTNULL,    `b` int(11) GENERATED ALWAYS AS(`a` +1),    PRIMARY KEY (`a`)) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4  partition by hash(`a`)


插入数据:


# INSERTINTO t1(a)VALUES(1);# SELECT*FROM t1;+---+---+| a | b |+---+---+|1|2|+---+---+


PolarDB-X兼容MySQL的生成列+索引的相关特性,支持在生成列上进一步创建索引来加速查询能力,比如针对json类型的内部key查询。在生成列上创建索引的例子:


>CREATETABLE t4 (    a BIGINTNOTNULL AUTO_INCREMENT PRIMARY KEY,    c JSON,    g INTAS(c->"$.id") VIRTUAL
) DBPARTITION BY HASH(a);>CREATE INDEX `i` ON `t4`(`g`);>INSERTINTO t4 (c)VALUES('{"id": "1", "name": "Fred"}'),('{"id": "2", "name": "Wilma"}'),('{"id": "3", "name": "Barney"}'),('{"id": "4", "name": "Betty"}');// 可以使用虚拟列g的索引进行裁剪
> EXPLAIN EXECUTE SELECT c->>"$.name"AS name FROM t4 WHERE g >2;+------+-------------+-------+------------+-------+---------------+------+---------+------+------+----------+-------------+| id   | select_type |table| partitions | type  | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |+------+-------------+-------+------------+-------+---------------+------+---------+------+------+----------+-------------+|1| SIMPLE      | t4    |NULL| range | i             | i    |5|NULL|1|100| Using where|+------+-------------+-------+------------+-------+---------------+------+---------+------+------+----------+-------------+


MySQL 8.0版本开始提供了表达式索引的功能,引入了函数索引(Functional Indexes)的概念,允许在索引中使用表达式。通过在CREATE INDEX语句中指定表达式,可以创建索引以优化特定的查询,底层内部的实现原始是采用了虚拟列。PolarDB-X在V2.3版本中兼容了MySQL 8.0的函数索引,支持创建索引时如果PolarDB-X发现某个索引项不是表中的一个列,而是一个表达式,此时PolarDB-X会自动将该表达式转换为VIRTUAL类型的生成列并添加到表中。所有索引项处理完成后,PolarDB-X会按照用户定义继续创建索引,索引定义中的表达式索引项将被替换成对应的生成列。此函数索引功能为实验特性,需要打开实验室参数开关后才能使用。


SET GLOBAL ENABLE_CREATE_EXPRESSION_INDEX=TRUE;


使用例子:


1. 创建表t7
>CREATETABLE t7 (    a BIGINTNOTNULL AUTO_INCREMENT PRIMARY KEY,    c varchar(32)) DBPARTITION BY HASH(a);2. 创建表达式索引i
>CREATE INDEX `i` ON `t7`(substr(`c`,2));3. 完成表达式索引创建之后的表结构如下:
> SHOW FULL CREATETABLE `t7`
# 返回结果
CREATETABLE `t7` (    `a` bigint(20)NOTNULL AUTO_INCREMENT BYGROUP,    `c` varchar(32) DEFAULT NULL,    `i$0` varchar(32) GENERATED ALWAYS AS(substr(`c`,2)) VIRTUAL,    PRIMARY KEY (`a`),    KEY `i` (`i$0`)) ENGINE = InnoDB dbpartition by hash(`a`)# 由于索引i的索引项是表达式,因此在表中添加了一个生成列i$0,这个生成列的表达式就索引项的表达式。最后创建索引i,其中索引项被替换成为对应的生成列。
# 创建完表达式索引之后,以下SQL就可以利用表达式索引加快查询速度:
> EXPLAIN EXECUTE SELECT*FROM t7 WHERE substr(`c`,2)='11';+------+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+| id   | select_type |table| partitions | type | possible_keys | key  | key_len | ref   | rows | filtered | Extra |+------+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+|1| SIMPLE      | t7    |NULL| ref  | i             | i    |131| const |1|100|NULL|+------+-------------+-------+------------+------+---------------+------+---------+-------+------+----------+-------+2.3 外键


2.3 外键


MySQL中的外键(Foreign Key)是一种关系型数据库的特性,用于建立表与表之间的关联关系。外键定义了一个表中的列与另一个表中的列之间的引用关系。通过外键,可以实现数据完整性和一致性的约束,以及数据之间的参照关系。PolarDB-X在V2.3版本中兼容了MySQL外键的常见使用,让你可以在分布式数据库中,通过外键对跨(库)表的数据建立连接,实现等同于单机数据库外键的数据一致性保证。同时,由于在分布式分区表上检查和维护外键约束的实现比单机数据库更为复杂,不合理的外键使用可能会导致较大的性能开销,导致系统吞吐显著下降。因此,外键功能会作为一项长期的实验性功能,建议你在对数据进行充分验证后谨慎使用。


SET GLOBAL ENABLE_FOREIGN_KEY =TRUE;


外键相关语法:


-- 创建外键[CONSTRAINT [symbol]] FOREIGN KEY
[index_name](col_name, ...)    REFERENCES tbl_name (col_name,...)[ONDELETE reference_option][ONUPDATE reference_option]reference_option:    RESTRICT | CASCADE |SETNULL| NO ACTION |SET DEFAULT
-- 删除外键ALTERTABLE tbl_name DROP FOREIGN KEY CONSTRAINT_symbol;


外键例子:

>CREATETABLE a (  id INT PRIMARY KEY
);>INSERTINTO a VALUES(1);>CREATETABLE b (  id INT PRIMARY KEY,  a_id INT,  FOREIGN KEY fk(`a_id`) REFERENCES a(`id`)ONDELETE CASCADE
);>INSERTINTO b VALUES(1,1);>CREATETABLE c (  b_id INT,  FOREIGN KEY fk(`b_id`) REFERENCES b(`id`)ONDELETE RESTRICT
);>INSERTINTO c VALUES(1);# 删除表A的记录,会级联检查A/B/C表的外键约束
>DELETEFROM a WHERE id =1;> ERROR 1451(23000): Cannot deleteorupdate a parent row: a foreign key constraint fails (`test`.`c`, CONSTRAINT `c_ibfk_1` FOREIGN KEY (`b_id`) REFERENCES `b` (`id`)ONDELETE RESTRICT)



3. frodo流量回放工具


frodo是阿里云数据库团队开源的PolarDB-X配套工具,主打数据库流量回放,主要用于解决数据库交付过程中的业务兼容性和性能评估的工作。


开源地址:https://github.com/polardb/polardbx-tools/tree/frodo-v1.0.0/frodo


大致工作原理:


主要包含两部分功能:


1. SQL日志采集,目前支持开源MySQL、以及Aliyun RDS的SQL审计,支持将这部分SQL日志解析为frodo内部的数据格式并持久化。


2. SQL流量回放,基于真实的业务SQL在PolarDB-X中进行流量回放,通过引入多线程技术可以实现倍数回放来模拟峰值流量的压测。


操作示例:


步骤一:从自建MySQL采集general日志


java -jar mysqlsniffer.jar--capture-method=general_log --replay-to=file --port=3306 --username=root --password=xxx --concurrency=32 --time=60 --out=logs/out.json


步骤二:将流量回放到PolarDB-X


java -Xms=2G -Xmx=4G -jar frodo.jar--file=/root/out.json --source-db=mysql --replay-to=polarx --port=3306 --host=172.25.132.163 --username=root --password=123456 --concurrency=64 --time=1000 --task=task1 --schema-map=test:test1,test2 --log-level=info --rate-factor=1 --database=test


流量回放完成后会生成一份数据报告,记录SQL运行报告吗,比如:SQL模版、成功率、RT等。




4. 开源生态完善


4.1 Canal开源适配


Canal是一款阿里云数据库团队开源的一款用于MySQL binlog实时数据同步和订阅的中间件。它基于数据库的日志解析技术,可以捕获数据库的增量变更,并将变更数据同步到其他系统,实现数据的实时同步和订阅。




Canal近期发布V1.1.7版本,支持PolarDB-X全局单流binlog、以及多流binlog的解析。


参考文档:https://github.com/alibaba/canal/issues/4657



如上图所示,PolarDB-X提供了两种形态的binlog日志消费订阅能力,且两种形态可同时共存。


▶︎ 单流形态:即单流binlog日志(也称为Global binlog),将所有DN的binlog归并到同一个全局队列,提供了保证事务完整性和有序性的日志流,可以提供更高强度的数据一致性保证。例如在转账场景下,基于Global binlog接入PolarDB-X的下游MySQL,可以在任何时刻查询到一致的余额。


▶︎ 多流形态:即多流binlog日志(也称为Binlog-X),并不是将所有DN的binlog归并到一个全局队列,而是将数据进行Hash打散并分发到不同的日志流,在一定程度上牺牲了事务的完整性,但大大提升了扩展性,可以解决大规模集群下单流binlog存在的单点瓶颈问题。


Canal开源地址:https://github.com/alibaba/canal


4.2 KubeBlocks开源适配


KubeBlocks是⼀个基于Kubernetes打造的、可⽀持多引擎统⼀接⼊和运维的开源项目,它可以帮助用户以BYOC(Bring-your-own-cloud)的方式轻松构建容器化和声明式的关系型、NoSQL、流计算以及向量型数据库服务。KubeBlocks专为生产目的而设计,为大多数场景提供可靠、高性能、可观察和经济高效的数据基础设施。KubeBlocks名字灵感来自乐高积木,寓意在 Kubernetes上可以像搭积木一样愉快地构建自己的数据基础设施。KubeBlocks在即将发布的0.7版本里,会原生支持PolarDB-X:



基于KubeBlocks快速安装PolarDB-X,只需要3步:


1. 创建集群模板

helm install polardbx ./deploy/polardbx


2. 创建PolarDB-X实例

方法一:
kbcli cluster create pxc --cluster-definition polardbx方法二:
helm install polardbx-cluster ./deploy/polardbx-cluster


3. 端口转发 & 登录数据库

kubectl port-forward svc/pxc-cn 3306:3306mysql -h127.0.0.1-upolardbx_root


4.3 CloudCanal数据迁移同步适配


CloudCanal是一款数据同步、迁移工具,帮助企业构建高质量数据管道,具备实时高效、精确互联、稳定可拓展、一站式、混合部署、复杂数据转换等优点。通过CloudCanal,用户可以快速、可靠地实现云原生环境下的数据库数据同步。同时,CloudCanal相比于Canal开源支持了更多的数据源接入、以及全量+结构迁移的能力,更好的满足用户一站式数据同步和迁移的功能。CloudCanal近期发布的版本,完整支持PolarDB-X作为源端和目标端的场景。


参考文档:https://www.clougence.com/cc-doc/releaseNote/rn-cloudcanal-2-7-0-0



相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
10天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《使用云起实验室体验PolarDB分布式版》
探索PolarDB分布式魅力:[《使用云起实验室体验PolarDB分布式版》](https://developer.aliyun.com/ebook/8335/116575?spm=a2c6h.26392459.ebook-detail.5.62e645c0hzSNhM) —— 一本指南,带你通过阿里云云起实验室动手实践分布式数据库技术,助力云上高效存储。
36 2
|
10天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍PolarDB分布式版架构介绍》
**《PolarDB分布式版架构介绍》电子书分享:** 探索阿里云PolarDB分布式设计,采用计算存储分离,借助GMS、CN组件实现大规模扩展。[阅读更多](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.3b3b2ccbVVjjt0)
15 3
|
22天前
|
Docker 容器 关系型数据库
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
本期课程将于4月11日19:00开始直播,内容包括源码编译基础知识和实践操作,课程目标是使学员掌握源码编译部署技能,为未来发展奠定基础,期待大家在课程中取得丰富的学习成果!
【PolarDB-X从入门到精通】 第四讲:PolarDB分布式版安装部署(源码编译部署)
|
1天前
|
存储 搜索推荐 Java
Java远程连接本地开源分布式搜索引擎ElasticSearch
Java远程连接本地开源分布式搜索引擎ElasticSearch
|
8天前
|
关系型数据库 分布式数据库 数据库
电子好书发您分享《PolarDB分布式版架构介绍》
阅读阿里云电子书《PolarDB分布式版架构介绍》,深入理解这款高性能数据库的分布式架构设计。书中通过图文并茂的方式揭示了PolarDB在分布式场景下的核心特性和技术优势,适合数据库爱好者和云计算从业者学习。[阅读链接](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.4ab72ccbIzDq2Q)
|
9天前
|
存储 SQL 关系型数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**PolarDB分布式版详解:** 阿里云的PolarDB采用计算存储分离架构,利用GMS进行元数据管理,CN处理分布式SQL。结合PolarFS,实现高效存储与计算,支持大规模扩展。[阅读完整架构介绍](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.5b912ccbE20nqg)
|
9天前
|
关系型数据库 OLAP 分布式数据库
「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!
4月26日周五,PolarDB开源社区联合康恩贝将共同举办开源数据库技术沙龙,本次沙龙我们邀请了众多数据库领域的专家,期待大家的参与!
「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!
|
12天前
|
分布式计算 Ubuntu 调度
如何本地搭建开源分布式任务调度系统DolphinScheduler并远程访问
如何本地搭建开源分布式任务调度系统DolphinScheduler并远程访问
|
19天前
|
运维 关系型数据库 分布式数据库
「合肥 * 讯飞」4 月 19 日 PolarDB 开源数据库沙龙,报名中!
4月19日周五,PolarDB开源社区联合科大讯飞共同举办开源数据库技术沙龙,本次沙龙我们邀请了众多数据库领域的专家,期待大家的参与!
「合肥 * 讯飞」4 月 19 日 PolarDB 开源数据库沙龙,报名中!
|
2月前
|
NoSQL 算法 安全
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
155 0

相关产品

  • 云原生数据库 PolarDB