Azure Cosmos DB for PostgreSQL 的限制和局限性

适用对象:PostgreSQL 的 Azure Cosmos DB (由 PostgreSQL 的 Citus 数据库扩展提供支持)

以下部分介绍 Azure Cosmos DB for PostgreSQL 服务中的容量和功能限制。

命名

群集名称

群集名称不得超过 40 个字符。

网络

最大连接数

每个 PostgreSQL 连接(即使是空闲连接)都至少使用 10 MB 的内存,因此,必须限制同步连接的数量。 我们选择使用以下限制来保证节点正常运行:

  • 每个节点的最大连接数
    • 0-3 个 vCore:300
    • 4-15 个 vCore:500
    • 16 个以上的 vCore:1000
  • 启用了可突发计算的每个节点的最大连接数
    • 1 个可突发 vCore:20
    • 2 个可突发 vCore:40

上述连接限制适用于用户连接(max_connections 减去 superuser_reserved_connections)。 我们会保留额外的连接用于管理和恢复。

这些限制对工作器节点和协调器节点都适用。 超出这些限制后,连接尝试会失败并提示错误。

连接池

可以使用连接池进一步缩放连接。 Azure Cosmos DB for PostgreSQL 提供一种托管 pgBouncer 连接池程序,配置为可同时具有最多 2000 个客户端连接。

存储

存储缩放

协调器和工作器节点上的存储可以纵向扩展(增加),但无法纵向缩减(减少)。

存储大小

多节点配置中的协调器和工作器节点上最多支持 32 TiB 存储。 单节点配置最多支持 2 TiB 的存储。 请参阅可用存储选项和 IOPS 计算,了解各种节点和群集大小。

用于存储加密的客户管理的密钥

对 Azure Cosmos DB For PostgreSQL 群集使用客户管理的密钥 (CMK) 进行数据加密具有以下限制。

  • CMK 加密只能在创建新的 Azure Cosmos DB for PostgreSQL 群集期间启用。
  • 专用访问(专用链接)不支持 CMK 加密。

计算

订阅 vCore 限制

Azure 强制实施每个区域每个订阅的 vCore 配额。 有三个可独立调整的配额:协调器节点的 vCore、工作器节点的 vCore 和可突发计算的 vCore。 默认配额应足以进行 Azure Cosmos DB for PostgreSQL 试验并运行中小型生产。 如果订阅中的某个区域确实需要更多 vCore,请参阅如何调整计算配额

可突发计算

在启用了可突发计算的 Azure Cosmos DB for PostgreSQL 群集中,当前不支持以下功能:

  • 加速网络
  • 本地缓存
  • PostgreSQL 和 Citus 版本升级
  • PostgreSQL 11 支持
  • 只读副本
  • 高可用性
  • 异地冗余备份
  • azure_storage 扩展

身份验证

Microsoft Entra ID 身份验证

如果在 Azure Cosmos DB for PostgreSQL 群集上启用了 Microsoft Entra ID,则目前不支持以下功能:

  • PostgreSQL 11、12 和 13
  • Microsoft Entra 组

安全性

MD5 哈希在 Azure Cosmos DB for PostgreSQL 中处于禁用状态,会影响以下方面:

  • 本机 Postgres 密码仅使用 SCRAM-SHA-256 方法进行哈希处理。
  • pgcrypto 扩展:MD5 不可用作哈希方法。
  • uuid-ossp 扩展:MD5 不可用作哈希方法。
  • 内置 Postgres 函数。 例如,SELECT md5(‘your_string’);
  • 自定义函数,例如使用 MD5 哈希的 PL/pgSQL 中的自定义函数。

数据库创建

Azure 门户提供的凭据用于连接到每个群集中的一个数据库。 目前不允许创建其他数据库,CREATE DATABASE 命令会失败并提示错误。

默认情况下,会调用此数据库 citus。 Azure Cosmos DB for PostgreSQL 仅在群集预配时支持自定义数据库名称。

备份和还原

异地冗余备份和还原

  • 只能在创建群集期间启用异地冗余备份。
  • 创建群集后,无法禁用异地冗余备份。
  • 无法在具有可突发计算的单节点群集上启用异地冗余备份。
  • 启用了异地冗余备份的群集不支持客户管理的密钥 (CMK)
  • 启用了异地冗余备份的 Azure Cosmos DB for PostgreSQL 群集不能在存储异地冗余备份的区域中具有群集只读副本

后续步骤