DBdoctor 是一款为数据库内核级性能诊断工具,利用eBPF技术深入数据库内核,致力于解决数据库的一切性能问题。
近日,DBdoctor(V3.1.0)正式通过了阿里云PolarDB分布式版(V2.3)产品集成认证测试,并获得阿里云颁发的产品生态集成认证。

本文将介绍PolarDB的特性,以及如何快速纳管数据库PolarDB-X。

PolarDB-X 是阿里自主设计的高性能云原生分布式数据库产品,采用 Shared-nothing 与存储分离计算架构,支持集中式和分布式一体化形态,具备金融级数据高可用、分布式水平扩展、混合负载、低成本存储和极致弹性等能力,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。
2023年10月份,PolarDB-X 开源正式发布V2.3.0版本,重点推出集中式形态标准版,将DN节点提供单独服务(存计未分离)。在性能场景上,采用生产级部署和参数(开启双1 + Paxos多副本强同步),相比于开源MySQL 8.0.34,PolarDB-X在读写混合场景上有30~40%的性能提升,可以作为开源MySQL的最佳替代选择。
PolarDB-X架构图

PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计,系统由4个核心组件组成:
计算节点(CN, Compute Node)
计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。
存储节点(DN, Data Node)
存储节
元数据服务(GMS, Global Meta Service)
元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息,维护账号、权限等安全信息,同时提供全局授时服务(即 TSO)。
日志节点(CDC, Change Data Capture)
日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力,提供兼容 MySQL Replication 协议的主从复制能力。
在同一时刻,整个集群中至多会有一个Leader节点来承担数据写入的任务,其余节点作为follower参与多数派投票和数据同步
Paxos的协议日志Consensus Log,全面融合了MySQL原有的binlog内容。在Leader主节点上会在binlog协议中新增Consensus相关的binlog event,同时在Follower备节点上替换传统的Relay Log,备库会通过SQL Thread进行Replay日志内容到数据文件,可以简单理解Paxos Consensus Log ≈ MySQL Binlog
基于Paxos多数派自动选主机制,通过heartbeat/election timeout机制会监听Leader节点的变化,在Leader节点不可用时Follower节点会自动完成切主,新的Leader节点提供服务之前需等待SQL Thread完成存量日志的Replay,确保新Leader有最新的数据。
PolarDB-X技术特点
高性能,采用单Leader的模式,可以提供类比MySQL semi-sync模式的性能
RPO=0,Paxos协议日志全面融合MySQL原有的binlog内容,基于多数派同步机制确保数据不丢
自动HA,基于Paxos的选举心跳机制,自动完成节点探活和HA切换。

下载地址:
https://openpolardb.com/download

b)PolarDB-X数据库安装和登录
# 依赖包安装
rpm -ivh t-polardbx-engine-2.3.0-b959577.el7.x86_64.rpmyum install libaio*
# 创建并切换到 polarx 用户
useradd -ms /bin/bash polarxecho "polarx:polarx" | chpasswdecho "polarx ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoerssu - polarx# 创建必要目录mkdir polardbx-enginecd polardbx-engine && mkdir log mysql run data tmp
[mysqld]basedir = /opt/polardbx-enginelog_error_verbosity = 2default_authentication_plugin = mysql_native_passwordgtid_mode = ONenforce_gtid_consistency = ONlog_bin = mysql-binlogbinlog_format = rowbinlog_row_image = FULLmaster_info_repository = TABLErelay_log_info_repository = TABLE# change me if neededdatadir = /home/polarx/polardbx-engine/datatmpdir = /home/polarx/polardbx-engine/tmpsocket = /home/polarx/polardbx-engine/tmp.mysql.socklog_error = /home/polarx/polardbx-engine/log/alert.logport = 4886cluster_id = 1234cluster_info = 127.0.0.1:14886@1[mysqld_safe]pid_file = /home/polarx/polardbx-engine/run/mysql.pid
#初始化
/opt/polardbx_engine/bin/mysqld --defaults-file=my.cnf --initialize-insecure#启动
/opt/polardbx_engine/bin/mysqld_safe --defaults-file=my.cnf &#登录数据库
mysql -h127.0.0.1 -P4886 -uroot ./dbd -I
https://www.hisensecloud.com/h-col-144.html

create user zx identified by 'Root2023!';GRANT SELECT, PROCESS, SHOW VIEW ON *.* TO 'zx'@'%';
切换到实例列表的tab,点击实例纳管按钮,进行实例录入。
① 录入实例的主数据库基本信息,并进行连通性检测:
点击“实例纳管”按钮可进行用户已有存量的数据库实例录入 。
可配置该实例的数据库基本信息,包括实例备注、数据库访问地址
可设置数据库实例的账号信息,包括实例的账号和密码
可进行数据库实例的连通性检测

② 配置数据洞察
设置洞察日志存储的天数(默认为10天)
针对PolarDB-X数据采集方式选择部署Agent,用来采集主机和实例性能数据,锁和审计日志相关当前版本还不支持,后续会考虑对该引擎的适配支持。
agent系统支持说明:目前仅支持X86_64系统,不支持ARM及X86_32服务器

1)开启性能分析

2)查看性能洞察


性能洞察的详细功能主要分为下面7个部分:
1)实例搜索:用户可以选择已接管的实例进行性能洞察的功能展示,实例指定时间区间或者近5m、1h、5h、24h、2d的快速时间选择搜索,并可指定刷新频率。
2)关键资源:展示实例关键资源的使用情况来评估是否存在资源瓶颈,显示该实例的DB维度/主机维度的关键资源使用率指标的趋势图,指标包括CPU使用率、MEM使用率、IOPS使用率、DISK Space使用率、连接数使用率。同时展示当前时间区间内的各指标的最大值。
3)业务流量:展示业务的流量指标,包括网络包的进出流量,数据库层面的业务QPS情况。
4)AAS:通过业务的数据库平均活跃会话来展示数据库的负载,同时展示负载中的TOP等待事件。
5)关联SQL:展示AAS负载相关联的根因SQL,同时可以查看该SQL的最差样本,并可以进行执行计划展示。
6)业务负载流量分布:按照用户/来源服务IP维度展示AAS负载,评估数据库负载问题的源头来自哪个业务系统。
7)专家经验库:详细展示性能问题事件的专家经验文档,从原理上解释这一事件是如何产生,应该怎样进行优化。

为了给您提供更进一步的服务,我们邀请您关注【DBdoctor服务】公众号,后台回复“进群”即可加入我们的



https://www.hisensecloud.com/h-col-126.html?statId=6
2️⃣ 在线试用:
https://dbdoctor1.hisensecloud.com
(关注公众号,点击在线试用获取试用环境专属账号密码)
3️⃣ 如何部署:
http://hisensecloud.com/h-col-133.html
4️⃣ 产品介绍:




