更新时间:2024-04-01 GMT+08:00

修改参数模板的参数值

为确保分布式数据库中间件服务发挥出最优性能,用户可根据业务需求对用户创建的参数模板中的参数进行调整。

您可以修改用户创建的参数模板中的参数值,但不能更改默认参数模板中的参数值。

以下是您在使用参数模板中的参数时应了解的几个要点:

  • 当您更改参数并保存参数模板时,参数更改将在您应用到实例后,手动重启与参数模板关联的实例后生效。应用参数模板到DDM实例,请参见应用参数模板
  • 如果您更改一个参数值,则所做更改的应用时间将由该参数的类型决定。
  • 系统提供的默认参数模板不允许修改,只可单击参数模板名进行查看。当用户参数设置不合理导致实例无法启动时,可参考默认参数模板重新配置。

操作步骤

  1. 登录分布式数据库中间件控制台。
  2. 在“参数模板”页面的“自定义”页签,选择目标参数模板,单击参数模板名称。
  3. 在“参数”页签下,根据需要修改相关参数值。

    图1 编辑参数模板

    支持修改的参数请参见表1

    表1 参数说明

    参数名称

    参数说明

    取值范围

    缺省值

    bind_table

    用于描述多个拆分表的内在数据关联性,用于告知优化器在处理join时,把join下推到MySQL层执行。参数举例请详见表下的说明。

    • 格式要求:

      [{<table1>.<column1>,<table2>.<column2>},{<table1>.<column2>,<table3>.<column1>},...]

      该参数要以“表名.列名”的形式出现且可以多对同时出现。

    • 版本要求:

      DDM 2.3.2.7版本及以上。

    -

    character_set_server

    DDM服务端字符集,如果需要存储emoji表情符号,请选择utf8mb4,并设置RDS字符集也为utf8mb4。

    3.0.9版本之后,连接DDM实例执行show variables like '%char%'查询命令,查询结果中character_set_client/character_set_results/character_set_connection固定显示为utf8mb4。

    gbk、utf8、utf8mb4

    utf8mb4

    collation_server

    DDM服务端字符序。

    utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_general_ci

    utf8mb4_unicode_ci

    concurrent_execution_level

    逻辑表扫描时的分片并发执行级别: DATA_NODE: 分库间并行扫描,同一分库内各分片串行扫描;RDS_INSTANCE: RDS实例间并行扫描,同一RDS实例内各分片串行扫描;PHY_TABLE: 各物理分片全部并行扫描。

    RDS_INSTANCE、DATA_NODE、PHY_TABLE

    DATA_NODE

    connection_idle_timeout

    服务器关闭连接之前等待连接活动的秒数,以秒为单位,默认值28800,表示服务器关闭连接之前等待28800秒后,关闭连接。

    60~86400

    28800

    contains_shard_key

    是否强制select,update,delete语句中过滤条件中包含拆分字段。

    OFF、ON

    OFF

    ddl_precheck_mdl_threshold_time

    DDL预检查中MDL锁持有时长阈值, 以秒为单位,默认值120。

    1~3600

    120

    enable_table_recycle

    ON: 开启表回收站。

    OFF: 关闭表回收站。

    开启表回收站之后,表删除会进入回收站,7天内可以通过restore命令进行恢复。

    OFF、ON

    OFF

    long_query_time

    记录慢查询的最小秒数,以秒为单位,默认值为1,表示如果sql执行大于等于1秒就定义为慢sql。

    0.01~10

    1

    max_allowed_packet

    包或任何生成的中间字符串的最大值。包缓冲区初始化为net_buffer_length字节,但需要时可以增长到max_allowed_packet字节。该值默认很小,以捕获大的(可能是错误的)数据包。该值必须设置为1024的倍数。

    1024~1073741824

    1073741824

    max_backend_connections

    允许每个DDM节点同时连接RDS的最大客户端总数。0为默认值标识符,实际值等于(RDS的最大连接数-20)/DDM节点数。此参数生效需要RDS上对最大连接数也进行相应的设置。

    0~10000000

    0

    max_connections

    允许每个实例节点同时连接的客户端总数。

    此参数需要结合数据节点的规格及处理能力配置合适的值。连接数过多,可能造成连接等待,影响性能。DDM的连接数消耗与分片数量和SQL设计等因素相关。

    例如:SQL带拆分键时,1个DDM连接同时消耗后面1个数据节点连接;SQL不带拆分键时,假设分片个数为N,那么会消耗N个数据节点连接。

    因此,SQL合理设计且DDM和数据节点的处理能力不成为瓶颈的前提,DDM最大连接数可以配置成略小于“后端数据节点的数量 * 单个数据节点支持的最大连接数”。

    建议根据自己的业务进行实际压测,配置合理的值。

    10~40000

    20000

    min_backend_connections

    允许每个DDM节点同时连接RDS的最小客户端总数。默认值为10。

    0~10000000

    10

    seconds_behind_master

    主从rds节点延迟时间阈值,以秒为单位,默认值为30,表示主rds与从rds之间的数据同步时间值不能超过30秒,如果超过30s,读数据指令就不走当前读节点。

    0~7200

    30

    sql_execute_timeout

    SQL执行超时秒数,以秒为单位,默认值28800,表示sql执行大于等于28800秒超时。

    建议将DN实例中的net_write_timeout参数值设置为大于sql_execute_timeout的数值。

    100~28800

    28800

    temp_table_size_limit

    临时表大小。

    500000~2000000000

    1000000

    transfer_hash_to_mod_hash

    创表时是否将hash算法转为mod_hash算法。

    OFF、ON

    OFF

    ultimate_optimize

    是否需要根据参数值来优化SQL执行计划。

    OFF、ON

    ON

    force_read_master_in_transaction

    事务中涉及的SQL语句是否强制从主节点读取。

    注意:

    3.0.9版本开始支持此参数。如果此开关被打开后,版本降级为3.0.9以下,之后再升级为3.0.9或以上时,此开关配置保持打开状态。

    OFF、ON

    OFF

    可进行的操作如下:

    • 单击“保存”,在弹出框中单击“是”,保存修改。
    • 单击“取消”,放弃本次设置。

  4. 参数修改完成后,您可以单击“模板历史记录”查看参数的修改详情。

    • 参数模板修改后,不会立即应用到当前使用的实例,您需要进行应用操作才可生效,具体操作请参见应用参数模板
    • 修改某些参数或字符集后需要手动重启,由于变更规格导致的强制重启,不会触发该参数生效。
    • 修改配置参数可能影响应用访问DDM实例,请谨慎操作。
    • 修改参数命令下发成功后,预计需要20~60秒生效,请耐心等待。
    • 参数模板修改后,某些参数会立即应用到当前使用实例中,请谨慎操作。