Azure Database for MariaDB 中的服务器参数

重要

Azure Database for MariaDB 已列入停用计划。 强烈建议迁移到 Azure Database for MySQL。 若要详细了解如何迁移到 Azure Database for MySQL,请参阅 Azure Database for MariaDB 发生了什么情况?

本文提供在 Azure Database for MariaDB 中配置服务器参数的注意事项和指南。

什么是服务器参数?

MariaDB 引擎提供了许多不同的服务器变量/参数,用于配置和优化引擎行为。 某些参数可在运行时动态设置,另外一些参数则为“静态”参数,需要重启服务器才能应用。

Azure Database for MariaDB 提供了通过 Azure 门户Azure CLIPowerShell 更改各种 MariaDB 服务器参数值的功能,以满足工作负荷的需要。

可配置的服务器参数

受支持服务器参数的列表还在不断增加。 在 Azure 门户中使用服务器参数选项卡可查看完整列表并配置服务器参数值。

请参阅以下各部分,详细了解多个经常更新的服务器参数的限制。 这些限制取决于服务器的定价层和 vCore 数。

log_bin_trust_function_creators

在 Azure Database for MariaDB 中,始终启用二进制日志(即 log_bin 设置为“ON”)。 如果你想使用触发器,则将收到如下错误:“你没有 SUPER 权限且二进制日志记录已启用(你可能需要使用安全性更低的 变量)”。

二进制日志记录格式始终是“行”,所有与服务器的连接始终使用基于行的二进制日志记录。 使用基于行的二进制日志记录时,不存在安全问题并且二进制日志记录无法中断,因此可以安全地将 log_bin_trust_function_creators 设置为 TRUE。

innodb_buffer_pool_size

查看 MariaDB 文档详细了解此参数。

支持高达 4 TB 存储的服务器

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 872415232 134217728 872415232
基本 2 2684354560 134217728 2684354560
常规用途 2 3758096384 134217728 3758096384
常规用途 4 8053063680 134217728 8053063680
常规用途 8 16106127360 134217728 16106127360
常规用途 16 32749125632 134217728 32749125632
常规用途 32 66035122176 134217728 66035122176
常规用途 64 132070244352 134217728 132070244352
内存优化 2 7516192768 134217728 7516192768
内存优化 4 16106127360 134217728 16106127360
内存优化 8 32212254720 134217728 32212254720
内存优化 16 65498251264 134217728 65498251264
内存优化 32 132070244352 134217728 132070244352

服务器最多支持 16 TB 存储

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 872415232 134217728 872415232
基本 2 2684354560 134217728 2684354560
常规用途 2 7516192768 134217728 7516192768
常规用途 4 16106127360 134217728 16106127360
常规用途 8 32212254720 134217728 32212254720
常规用途 16 65498251264 134217728 65498251264
常规用途 32 132070244352 134217728 132070244352
常规用途 64 264140488704 134217728 264140488704
内存优化 2 15032385536 134217728 15032385536
内存优化 4 32212254720 134217728 32212254720
内存优化 8 64424509440 134217728 64424509440
内存优化 16 130996502528 134217728 130996502528
内存优化 32 264140488704 134217728 264140488704

innodb_file_per_table

注意

innodb_file_per_table 只能在“常规用途”和“内存优化”定价层中更新。

MariaDB 根据你在创建表期间提供的配置,将 InnoDB 表存储在不同的表空间中。 系统表空间是 InnoDB 数据字典的存储区域。 file-per-table 表空间包含单个 InnoDB 表的数据和索引,并存储在文件系统内它自己的数据文件中。 此行为由 innodb_file_per_table 服务器参数控制。 将 innodb_file_per_table 设置为 OFF 会导致 InnoDB 在系统表空间中创建表。 否则,InnoDB 将在 file-per-table 表空间中创建表。

在单个数据文件中,Azure Database for MariaDB 支持最大 1 TB。 如果数据库大小超过 1 TB,应在 innodb_file_per_table 表空间中创建表。 如果单个表的大小超过 1 TB,应使用分区表。

join_buffer_size

查看 MariaDB 文档详细了解此参数。

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 在基本层中不可配置 不适用 不适用
基本 2 在基本层中不可配置 不适用 不适用
常规用途 2 262144 128 268435455
常规用途 4 262144 128 536870912
常规用途 8 262144 128 1073741824
常规用途 16 262144 128 2147483648
常规用途 32 262144 128 4294967295
常规用途 64 262144 128 4294967295
内存优化 2 262144 128 536870912
内存优化 4 262144 128 1073741824
内存优化 8 262144 128 2147483648
内存优化 16 262144 128 4294967295
内存优化 32 262144 128 4294967295

max_connections

定价层 vCore(s) 默认值 最小值 最大值
基本 1 50 10 50
基本 2 100 10 100
常规用途 2 300 10 600
常规用途 4 625 10 1250
常规用途 8 1250 10 2500
常规用途 16 2500 10 5000
常规用途 32 5000 10 10000
常规用途 64 10000 10 20000
内存优化 2 625 10 1250
内存优化 4 1250 10 2500
内存优化 8 2500 10 5000
内存优化 16 5000 10 10000
内存优化 32 10000 10 20000

当连接数超出限制时,可能会收到以下错误:

错误 1040 (08004):连接过多

重要

为了获得最佳体验,建议使用 ProxySQL 等连接池程序来高效地管理连接。

创建与 MariaDB 的新客户端连接需要时间,一旦建立,这些连接就会占用数据库资源,即使在空闲时也是如此。 大多数应用程序会请求许多生存期短的连接,这加剧了这种情况。 其结果是可用于实际工作负荷的资源减少,从而导致性能下降。 连接池程序不仅会减少空闲连接,还会重用现有连接,因而有助于避免这种情况。 若要了解如何设置 ProxySQL,请访问我们的博客文章

注意

ProxySQL 是一个开源社区工具。 Microsoft 尽最大努力为它提供支持。 若要获得包含权威指导的生产支持,可以评估并联系 ProxySQL 产品支持

max_heap_table_size

查看 MariaDB 文档详细了解此参数。

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 在基本层中不可配置 不适用 不适用
基本 2 在基本层中不可配置 不适用 不适用
常规用途 2 16777216 16384 268435455
常规用途 4 16777216 16384 536870912
常规用途 8 16777216 16384 1073741824
常规用途 16 16777216 16384 2147483648
常规用途 32 16777216 16384 4294967295
常规用途 64 16777216 16384 4294967295
内存优化 2 16777216 16384 536870912
内存优化 4 16777216 16384 1073741824
内存优化 8 16777216 16384 2147483648
内存优化 16 16777216 16384 4294967295
内存优化 32 16777216 16384 4294967295

query_cache_size

默认情况下,MariaDB 中的查询缓存是使用 have_query_cache 参数启用的。

查看 MariaDB 文档详细了解此参数。

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 在基本层中不可配置 不适用 不适用
基本 2 在基本层中不可配置 不适用 不适用
常规用途 2 0 0 16777216
常规用途 4 0 0 33554432
常规用途 8 0 0 67108864
常规用途 16 0 0 134217728
常规用途 32 0 0 134217728
常规用途 64 0 0 134217728
内存优化 2 0 0 33554432
内存优化 4 0 0 67108864
内存优化 8 0 0 134217728
内存优化 16 0 0 134217728
内存优化 32 0 0 134217728

sort_buffer_size

查看 MariaDB 文档详细了解此参数。

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 在基本层中不可配置 不适用 不适用
基本 2 在基本层中不可配置 不适用 不适用
常规用途 2 524288 32768 4194304
常规用途 4 524288 32768 8388608
常规用途 8 524288 32768 16777216
常规用途 16 524288 32768 33554432
常规用途 32 524288 32768 33554432
常规用途 64 524288 32768 33554432
内存优化 2 524288 32768 8388608
内存优化 4 524288 32768 16777216
内存优化 8 524288 32768 33554432
内存优化 16 524288 32768 33554432
内存优化 32 524288 32768 33554432

tmp_table_size

查看 MariaDB 文档详细了解此参数。

定价层 vCore(s) 默认值(字节) 最小值(字节) 最大值(字节)
基本 1 在基本层中不可配置 不适用 不适用
基本 2 在基本层中不可配置 不适用 不适用
常规用途 2 16777216 1024 67108864
常规用途 4 16777216 1024 134217728
常规用途 8 16777216 1024 268435456
常规用途 16 16777216 1024 536870912
常规用途 32 16777216 1024 1073741824
常规用途 64 16777216 1024 1073741824
内存优化 2 16777216 1024 134217728
内存优化 4 16777216 1024 268435456
内存优化 8 16777216 1024 536870912
内存优化 16 16777216 1024 1073741824
内存优化 32 16777216 1024 1073741824

time_zone

初始部署后,Azure for MariaDB 服务器包含用于时区信息的系统表,但这些表没有填充。 可以通过从 MySQL 命令行或 MySQL Workbench 等工具调用 mysql.az_load_timezone 存储过程来填充时区表。 若要了解如何调用存储过程并设置全局时区或会话级时区,请参阅 Azure 门户Azure CLI 一文。

不可配置的服务器参数

以下服务器参数不可在服务中配置:

参数 固定值
基本层中的 innodb_file_per_table OFF
innodb_flush_log_at_trx_commit 1
sync_binlog 1
innodb_log_file_size 256 MB
innodb_log_files_in_group 2

MariaDB 中,上表中未列出的其他服务器参数将设置为其 MariaDB 现成默认值。

后续步骤