本文汇总PolarDB MySQL版文档数据库(兼容MongoDB协议)相关的常见问题。
该功能适合哪些业务场景?
适合需要灵活Schema、以文档模型开发的在线业务,例如内容管理、用户画像、物联网、游戏存档等。同时它构建在PolarDB MySQL版之上,同一份数据既能以文档方式进行灵活读写,也能通过标准SQL进行复杂查询与分析,适合希望“一份数据、两种访问方式”打通业务与分析的统一数据平台场景。
使用该功能如何计费?
文档数据库(兼容MongoDB协议)能力本身不额外收费,您只需为底层的PolarDB MySQL版集群资源(计算节点规格、存储、备份等)付费。若在固定规格集群上开启了Serverless弹性能力,则按PCU(PolarDB Capacity Unit)计费。
如何开始使用?
-
确认您的集群是否满足适用范围:
-
内核版本:MySQL 8.0.2,且内核小版本需为8.0.2.2.36及以上。
-
数据库代理版本:需为2.9.22及以上。
-
其他限制:Serverless集群暂不支持文档数据库兼容功能。
-
-
满足条件后,您可登录PolarDB控制台,进入目标集群的基本信息页面。
-
找到文档数据库兼容配置项并单击开启,系统会自动创建一个默认的文档数据库兼容地址。
-
创建文档数据库高权限账号,再使用MongoDB驱动或
mongosh连接即可。详细步骤请参见使用说明。
该功能提供高可用保障吗?
提供。计算节点采用一主多只读的高可用架构(企业版最多15个只读节点、标准版最多7个只读节点),主节点负责写入、只读节点分担读取,具备自动故障切换能力,可用性由底层PolarDB MySQL版集群保障。
哪些集群类型不支持该功能?
以下集群类型暂不支持开启文档数据库(兼容MongoDB协议)能力:
-
Serverless集群。
说明支持在固定规格集群上开启Serverless弹性功能,但若您购买的是Serverless集群,则不支持开启文档数据库(兼容MongoDB协议)功能。
客户端如何连接文档数据库(兼容MongoDB协议)地址?
使用标准的MongoDB驱动或mongosh,连接到文档数据库(兼容MongoDB协议)地址。连接串格式为:
mongodb://<username>:<password>@<polardb_endpoint>:<port>
-
<username>:文档数据库账号名,如doc_root或通过createUser创建的普通账号。 -
<password>:账号对应的密码。含特殊字符时需进行UrlEncode编码。 -
<polardb_endpoint>:文档数据库兼容地址域名。 -
<port>:文档数据库兼容地址端口号。
支持哪些驱动和客户端?
支持标准MongoDB Wire Protocol的常见驱动与工具,包括mongosh、Python(pymongo)、Node.js(mongoose)、Go官方MongoDB驱动等。详情请参见驱动和生态工具。
连接层如何实现读写分离与负载均衡?
协议转换在数据库代理层完成,与内核解耦,因此可复用PolarDB的连接池、负载均衡与读写分离能力:写请求路由到主节点,读请求分发到只读节点,从而在协议兼容的同时获得横向扩展的读能力。
支持哪些MongoDB协议与功能?
PolarDB MySQL版通过数据库代理层兼容MongoDB Wire Protocol,支持常用的查询、更新、投影操作符与聚合管道,以及常见的数据库命令。关于操作符与命令的详细支持清单,请参见兼容性与限制。
可以把现有MongoDB数据库迁移到PolarDB吗?
可以。推荐使用阿里云DTS(数据传输服务)进行迁移,支持库表结构迁移、全量迁移与增量迁移。详细步骤请参见数据迁移指南。
迁移后需要注意哪些行为差异?
个别管理类命令、服务端扩展功能以及部分边缘语义可能与原生MongoDB存在差异。建议在正式切换前,在测试环境用真实业务负载进行功能验证,并对照兼容性与限制确认所用操作符与命令是否受支持。
如何扩展性能?
-
纵向扩展:升级计算节点规格。
-
横向扩展读能力:增加只读节点(企业版最多15个),配合代理层读写分离分担读负载。
-
存储扩展:基于云原生分布式存储架构,存储容量可扩展至PB级。
-
弹性伸缩:在固定规格集群上开启Serverless弹性能力,按PCU进行秒级弹性扩缩。
暂不支持分片能力,可以通过增加只读节点提高读请求性能,通过纵向扩展提高写请求性能。
如何监控和排查性能问题?
使用PolarDB控制台的监控指标、慢日志与SQL洞察等工具定位慢请求。由于文档操作最终转换为SQL执行,可结合PolarDB MySQL版已有的性能诊断能力(如执行计划、SQL统计)进行分析。