前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.4 LTS 版本

MySQL 8.4 LTS 版本

作者头像
用户1278550
发布2024-05-09 15:19:51
1850
发布2024-05-09 15:19:51
举报
文章被收录于专栏:idbaidba

前言

Oracle 前几天发布了 MySQL 8.4 版本(LTS), 该版本是创新版的第一个长期支持版本。详细规划,请移步 技术译文 | 一文了解 MySQL 全新版本模型

关于 MySQL 的版本发布规划

Oracle MySQL 官方开发团队推出的新版本将过渡到新的 MySQL 版本模型。MySQL 8.1.0 是第一个创新版本,8.0.34+ 将只进行错误修复,直到 8.0 生命周期结束(EOL,定于 2026 年 4 月)。

MySQL 8.x 版本最终将成为 LTS,这将为用户从 8.0.x 迁移到 8.x LTS 版本提供充足的时间。

对我们的影响 ,总结起来就是:
  1. 如果用户想要 MySQL 数据库的最新功能、改进和bug fix,请使用创新版本(例如 8.1.x、8.2.x、8.3.x 等)。
  2. 如果用户 MySQL 只需要错误修复,请使用 8.0.x 版本(例如 8.0.35、8.0.36、8.0.37 等)。
  3. 如果用户使用的是国内云厂商的RDS MySQL 数据库服务,具体版本支持计划请参考各个厂商的相关公告。

言归正传,聊聊 8.4 的技术特性。

8.4 功能变更

1 MySQL 密码认证

认证插件:默认情况下, mysql_native_password 插件被禁用, 如果需要启用该插件,需要在启动时指定 --mysql-native-password=ON 或者在my.cnf 文件里面配置 mysql_native_password=ON

2 InnoDB 相关默认参数变化

重点说3个吧

innodb_io_capacity: 默认值改成了10000,之前是200。目前绝大部分磁盘都是 SSD ,200 这个值的确少了点。

innodb_buffer_pool_instances: 调整取值的算法,取min(innodb_buffer_pool_size / innodb_buffer_pool_chunk_size *1/2, 逻辑 CPU * 1/4)

innodb_adaptive_hash_index: 默认改为 OFF ,之前是ON ,AHI 是 DDL 不稳定因素之一 ,这次终于默认关闭了。开启也带来不了多少性能提升。

其他的 各位读者朋友可以看官方文档或者下面的截图:

3 复制相关

主从复制参数 SOURCE_RETRY_COUNT 默认值变更为 10,也即主从复制关系异常时,从库尝试连接主库10次。每次间隔的时间由 SOURCE_CONNECT_RETRY 决定,默认 60s 。

在 MySQL 的主从复制配置中,SOURCE_RETRY_COUNTSOURCE_CONNECT_RETRY 决定复制过程中从服务器尝试重新连接到主服务器的行为。

SOURCE_RETRY_COUNT:从服务器在复制过程中遇到错误(如网络问题或访问冲突)时,尝试重新访问主库的重试次数。默认情况下,如果从服务器在读取二进制日志文件时遇到错误,它会停止复制并等待下一次 poll 操作(通常是几秒到几十秒,取决于 REPLICATE_RECONNECT 参数的设置)。如果设置了 SOURCE_RETRY_COUNT,从服务器将在这个次数范围内尝试重新读取错误发生的位置,而不是立即停止复制。

SOURCE_CONNECT_RETRY:从服务器尝试重新连接到主服务器的间隔时间。当从服务器由于某些原因与主服务器的连接断开时(比如主服务器重启或网络中断),从服务器会等待 SOURCE_CONNECT_RETRY 指定的秒数后尝试重新建立连接。如果连接失败,从服务器将继续在每隔 SOURCE_CONNECT_RETRY 秒尝试重连,直到成功为止。

之前没有注意改参数,这次补习一下。

4 master/slave 关键字变化

前几年为了政治正确官方决定去掉关键字 masterslave ,现在终于在 8.4 版本里面去掉了,使用者需要做如下替换:

代码语言:javascript
复制
master  ---> source
slave   ---> replica

这里要辛苦运维开发同学做版本兼容。凡是涉及 这两个词的状态参数, 命令语句 都要修改。不过 8.4 版本应用到是生产版本还有好多年,习惯命令行的朋友还不用着急修改。

5 SQL_AFTER_GTIDS 兼容 MTA.

以前,当复制启用 并行复制 MTA功能并且用户尝试 SQL_AFTER_GTIDS,"START REPLICA" 会触发警告 ER_MTS_FEATURE_IS_NOT_SUPPORTED,并且复制会被切换到单线程模式。8.4 版本 ,"START REPLICA" 语句的 "SQL_AFTER_GTIDS" 选项兼容 MTA 。

6 组复制 参数相关

group_replication_consistency 系统变量的默认值从EVENTUAL 改为 BEFORE_ON_PRIMARY_FAILOVER

group_replication_exit_state_action 系统变量的默认值改为 OFFLINE_MODE

group_replication_set_as_primary() 函数在选择新主成员时,将等待正在进行的DDL结束。

7 Clone plugin

克隆功能对版本的要求进一步放宽,允许在同一大版本的不同小版本之间进行克隆。换句话说,只有主要版本号和次要版本号必须匹配,而以前点版本号也必须匹配。

例如,克隆功能现在允许将 8.4.0 克隆到 8.4.14 以及将 8.0.51 克隆到 8.0.37。对于 8.0,之前的限制仍然适用于 8.0.37 之前的版本,因此不允许将 8.0.36 等克隆到 8.0.42,反之亦然。(WL#15989)

8 直方图自动更新功能

MySQL 8.4.0 支持自动更新直方图。当为给定的直方图启用此功能时,你可以通过为 ANALYZE TABLE 语句包含 AUTO UPDATE 选项来启用此功能。每当对指定的表运行 ANALYZE TABLE 时,它会被更新。

可以使用 MANUAL UPDATE 选项禁用自动更新某个表的直方图功能。如果没有指定这两个选项中的任何一个,则默认为 MANUAL UPDATE(无自动更新)。

9 Thread pool plugin 连接信息
  1. 增加 连接池相关的表 tp_connections 记录每个连接池的元数据。
  2. tp_thread_statetp_thread_group_state 增加了更细粒度的字段显示 连接池的状态。
10 废弃 expire_logs_days

废弃参数 expire_logs_days 并使用 binlog_expire_logs_seconds 代替。

11 过时的复制选项和变量

在 MySQL 早期版本中,一些与MySQL复制相关的选项和变量已被弃用,并且已从MySQL 8.4中移除。现在尝试使用这些选项和变量将导致服务器抛出语法错误。这些选项和变量列举如下:

--slave-rows-search-algorithms:当应用更新或删除操作寻找表行时,复制应用程序使用的算法现在始终是HASH_SCAN,INDEX_SCAN,用户不再能够配置此项。

--log_bin_use_v1_events:这允许运行MySQL 5.7及更新版本的源服务器复制到早期版本的MySQL,这些早期版本的MySQL不再被支持或维护。

--relay-log-info-file, --relay-log-info-repository, --master-info-file, --master-info-repository:使用文件作为sql 应用线程的元数据的方式已被支持 crash-safe 的表所取代。

官方文档

  1. https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/index.html
  2. https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-05-03,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 yangyidba 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对我们的影响 ,总结起来就是:
  • 8.4 功能变更
    • 1 MySQL 密码认证
      • 2 InnoDB 相关默认参数变化
        • 3 复制相关
          • 4 master/slave 关键字变化
            • 5 SQL_AFTER_GTIDS 兼容 MTA.
              • 6 组复制 参数相关
                • 7 Clone plugin
                  • 8 直方图自动更新功能
                    • 9 Thread pool plugin 连接信息
                      • 10 废弃 expire_logs_days
                        • 11 过时的复制选项和变量
                        • 官方文档
                        相关产品与服务
                        云数据库 MySQL
                        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                        http://www.vxiaotou.com