MySQL8.0.21稳定版已于7⽉13⽇发布
编译说明
服务器构建的Boost库的最低版本现在为1.72.0。
配置说明
tcmalloc不再是mysqld_safe 选项的允许值。
接口并发如何处理添加或更改功能
重要更改: 默认情况下,复制源服务器按照系统变量的设定(默认为CRC32)为⼆进制⽇志中的每个事件写⼊⼀个校验和CRC32。
以前,组复制不⽀持⼆进制⽇志中存在校验和,因此 在配置将成为组成员的服务器实例时必须将其设置为NONE。现在,已经可以使⽤默认设置。并且组成员的设置不必相同。
请注意,组复制不使⽤校验和来验证group_replication_applier通道上的传⼊事件 ,因为事件是从多个源写⼊到该中继⽇志的,并且在它们实际写⼊原始服务器的⼆进制⽇志之前即已⽣成校验和。校验和⽤于验证group_replication_recovery通道和组成员上任何其他复制通道上事件的完整性 。
性能:通过引⼊⽤于将⼗六进制数字字符串映射到其⼆进制表⽰形式的查表, 改进了该函数的实现 。在测试中,此更改将执⾏速度提⾼了8倍或更多。
InnoDB: 现在可以使⽤语法启⽤和禁⽤重做⽇志记录 。此功能旨在将数据加载到新的MySQL实例中。禁⽤重做⽇志记录可以避免重做⽇志写⼊,从⽽有助于加快数据加载速度。
新参数 允许启⽤和禁⽤重做⽇志记录。
新的 状态变量允许监视重做⽇志记录状态。
InnoDB: 在繁忙的系统上截断撤消表空间可能会影响性能,因为相关的刷新操作会从缓冲池中删除旧的撤消表空间页⾯,并将新的撤消表空间的初始页⾯刷新到磁盘上。为了解决此问题,不再进⾏截断操作。
现在,旧的撤消表空间页⾯中最近使⽤最少的空间将被标记为待回收空间,或在下⼀个完整检查点删除。现在,在截断操作期间重新记录了新撤消表空间的初始页,⽽不是刷新到磁盘,这也有效降低了撤消表空间截断操作对系统性能的影响。
为了防⽌由于撤消表空间的截断操作过多⽽导致的潜在问题,现在将检查点之间同⼀撤消表空间上的截断操作限制为64。如果超过了限制,则仍可以使撤消表空间为⾮活动状态,截断操作会在下⼀个检
查点之后再进⾏。
与已撤销的undo truncate刷新操作相关的计数器已删除。删除了计数器包括: undo_truncate_sweep_count,
undo_truncate_sweep_usec, undo_truncate_flush_count,和 undo_truncate_flush_usec。
InnoDB: 在启动时,InnoDB如果表空间⽂件已移动到其他位置,则对照数据字典中存储的表空间⽂件路径验证已知表空间⽂件的路径。新 变量允许禁⽤表空间路径验证。此功能适⽤于不移动表空间⽂件的环境。禁⽤表空间路径验证可缩短具有⼤量表空间⽂件的系统上的启动时间。
有关更多信息,请参见 。
InnoDB: 使⽤DATA DIRECTORY⼦句在数据⽬录之外创建的表和表分区数据⽂件现在仅限于已知的⽬录 InnoDB。此更改使数据库管理员可以控制在何处创建表空间数据⽂件,并确保可以在恢复期间到这些数据⽂件。
表空间数据⽂件(.ibd⽂件)不能再在undo表空间⽬录()中创建,必须明确指定这些⽬录的位置。
需要被明确定义 , 和 变量。
截断InnoDB驻留在每个表⽂件表空间中的表会删除现有表空间并创建⼀个新表空间。从MySQL 8.0.21开始,InnoDB 如果表空间是使⽤较早版本创建的,并且当前表空间⽬录是未知的,则在默认位置创建新表空间,并将警告写⼊错误⽇志。要在当前位置创建表空间,请在运⾏之前将⽬录添加到设置中。
InnoDB: 为了提⾼需要访问表和⾏资源的锁队列的操作的并发性,锁系统互斥锁(lock_sys->mutex)被分⽚闩锁代替,并且锁队列被分组为表和页 锁队列分⽚,每个分⽚都由⼀个保护。专⽤互斥。以前,单锁系统互斥锁可保护所有锁队列,这是⾼并发系统上的争抢热点。新的分⽚实现允许更精细地控制访问锁定队列。
锁系统互斥锁(lock_sys->mutex)被以下分⽚闩锁代替:spring cloud有哪些版本
全局闩锁(lock_sys->latches.global_latch),由64个读写锁定对象(rw_lock_t)组成。访问单个锁队列需要共享的全局锁存器和锁队列分⽚上的锁存器。需要访问所有锁定队列的操作采⽤排他的全局闩锁,该闩锁会闩锁所有表和页⾯锁定队列分⽚。
表分⽚锁存器(lock_sys->latches.table_shards.mutexes),由512个互斥锁组成,每个互斥锁专⽤于512个表锁定队列分⽚之⼀。
mysql无法连接到服务器
页⾯分⽚闩锁(lock_sys->latches.page_shards.mutexes),由512个互斥锁组成,每个互斥锁专⽤于512个页⾯锁定队列分⽚之⼀。
wait/synch/mutex/innodb/lock_mutex⽤于监视单锁系统互斥锁 的Performance Schema ⼯具已由⽤于监视新的全局,表分⽚和页⾯分⽚闩锁的⼯具取代:
wait/synch/sxlock/innodb/lock_sys_global_rw_lock
wait/synch/mutex/innodb/lock_sys_table_mutex
wait/synch/mutex/innodb/lock_sys_page_mutex
以前,选项不会忽略选项值中列出的存储引擎周围的空格。现在会忽略引擎名称周围的空格。(缺陷#31373361,缺陷#99632)
新的HANDLE_FATAL_SIGNALS CMake选项可以配置Address Sanitizer和Undefined Behavior Sanitizer构建是否使⽤sanitizer 运⾏时库来处理致命信号,⽽不是使⽤MySQL内部函数。默认选项 ON适⽤于non-sanitizer版本, OFF⽤于sanitizer版本。如果该选项为 OFF,则默认操作⽤于SIGBUS,SIGILL和SIGSEGV,⽽不是内部函数。(缺陷#31068443)
使⽤GROUP BY(通过别名)重复两次或更多次(通过别名)的列,其 ROLLUP⾏为不同于MySQL 5.7。例:
SELECT a, b AS a, COUNT(*) FROM t1 GROUP BY a, b WITH ROLLUP;
此类查询的⾏为已更改为更好地匹配MySQL 5.7。但是,应避免使⽤它们,因为将来⾏为可能会再次更改,或者此类查询可能变得⾮法。(缺陷#30921780,错误#98663)
MySQL Server Docker容器现在⽀持在客户端会话中重新启动服务器(例如,当 客户端执⾏语句或在 了RESTART)。要启⽤此重要功能,请参见 。(缺陷号30750730)
现在⽀持FORMAT选项。TREE是唯⼀受⽀持的格式。(缺陷号30315224)
或 启⽤后,将不被允许。(缺陷号30274240)
现在⽀持 CDATA导⼊XML⽂件中的部分。(缺陷#98199,错误#30753708)
X Plugin的 系统变量现在可以像MySQL Server的系统变量⼀样接受多个IP地址,从⽽使X Plugin可以侦听多个⽹络套接字上的TCP / IP连接。
⾏为上的⼀个重要区别是,对于MySQL Server,地址列表中的任何错误都会阻⽌服务器启动,但是X插件(这不是必需的插件)不会这样做。使⽤X插件,如果⽆法解析列出的地址之⼀,或者如果X插件不能绑定到该地址,则该地址将被跳过,并记录⼀条错误消息,并且X插件将尝试绑定到其余的每个地址。X插件的 状态变量仅显⽰列表中绑定成功的那些地址。如果列出的地址均未成功绑定,则X 插件会记录⼀条错误消息,指出⽆法使⽤X协议。
在⽀持原⼦DDL的存储引擎上,当使⽤基于⾏的复制时,该 语句现在作为⼀个事务记录在⼆进制⽇志中。以前,它被记录为两个事务,⼀个⽤于创建表,另⼀个⽤于插⼊数据。通过此更改, 语句现在可以安全地⽤于基于⾏的复制,并且可以与基于GTID的复制⼀起使⽤。有关更多信息,请参见。
simulink仿真需要编程吗ENGINE_ATTRIBUTE并 SECONDARY_ENGINE_ATTRIBUTE选择加⼊, 和 语法。该 ENGINE_ATTRIBUTE选项也被添加到 和
语法中。允许为表,列,索引和表空间定义存储引擎属性的新选项保留供将来使⽤。
添加了 以下表,⽤于查询表,列,索引和表空间的存储引擎属性。值存储在数据字典中。这些表保留供将来使⽤。
INFORMATION_SCHEMA.TABLESPACES_EXTENSIONS
组复制组成员现在可以播发IP地址列表,加⼊的成员可使⽤该IP地址与它们建⽴连接,以便在分布式恢复期间进⾏状态转移。以前,现有成员的标准SQL客户端连接⽤于此⽬的以及客户端流量。通告分布式恢复端点,可以使您更好地控制⽹络基础结构中的分布式恢复流量(包括远程克隆操作和来⾃⼆进制⽇志的状态转移)。使⽤新的指定成员的分布式恢复端点的列表 系统变量,并且应⽤了与SQL客户端连接⽤于分布式恢复相同的SSL要求。
尚硅谷it培训MySQL Server的默认⽇志记录级别省略了信息⽇志消息,该⽇志消息先前包含⼀些重要的组复制⽣命周期事件,这些事件是⾮错误情况,例如组成员⾝份更改。现在,有关复制组重要事件的消息已被重新分类为系统消息,因此⽆论服务器的⽇志记录级别如何,它们始终显⽰在服务器的错误⽇志中。因此,操作员可以查看复制组中服务器成员⾝份的完整历史记录。此外,组通信层上的套接字绑定错误已从信息重新分类为错误消息。
现在,您可以指定在分布式恢复⽤户凭据 使⽤语句USER, PASSWORD和DEFAULT_AUTH 选项。这些凭据⽤
于group_replication_recovery通道上的分布式恢复。当您在上指定⽤户凭据时,凭据仅保存在内存中,并通过语句或服务器关闭来删除。这些凭据可以替换使⽤语句设置的⽤户凭据,该⽤户凭据 存储在复制元数据存储库中,因此可以帮助防⽌未经授权的访问⽽保护组复制服务器。
提供⽤户凭据的新⽅法与服务器启动时⾃动启动组复制不兼容。如果以前使⽤语句设置了⽤户凭据 ,则您指定的凭据优先于这些凭据。但是,如果 在没有⽤户凭据的情况下指定了复制元数据存储库的凭据,则使⽤该凭据,如果 系统变量设置为⾃动启动ON(包括在进⾏分布式恢复的远程克隆操作之后),则会在⾃动启动时发⽣ 。为了获得在上指定⽤户凭据的安全性 ,请确保将 设置为OFF(默认值为 ON),并使⽤⼀条语句清除先前为该group_replication_recovery渠道设置的所有⽤户凭据 。
delphi下载mp3由 系统变量指定的“组复制”中XCom消息⾼速缓存的最⼤⼤⼩的最⼩设置 已从⼤约1 GB减少到134217728字节,或⼤约128 MB。请注意,此⼤⼩限制仅适⽤于缓存中存储的数据,并且缓存结构需要额外的50 MB内存。应该在所有组成员上设置相同的缓存⼤⼩限制。默认的XCom消息缓存⼤⼩1 GB(以前也是最⼩设置)未更改。
提供较⼩的消息缓存⼤⼩是为了能够在具有有限可⽤内存量和良好⽹络连接的主机上进⾏部署。极低 如果主机位于不稳定的⽹络上,则不建议使⽤此设置,因为较⼩的邮件缓存会使组成员在暂时失去连接后很难重新连接。如果由于达到成员的最⼤⼤⼩限制⽽已从其他成员的XCom消息缓存中删除了在成员暂时缺席期间交换的某些消息,则该成员⽆法使⽤消息缓存重新连接。它必须离开组并重新加⼊以便通过分布式恢复来检索事务,这⽐使⽤消息⾼速缓存要慢,尽管该成员仍然可以这种⽅式重新加⼊⽽⽆需操作员⼲预。
请注意,从MySQL 8.0.21开始,默认情况下,在将成员从组中驱逐之前(由 系统变量指定),添加了5秒的退出超时 。因此,使⽤此默认设置后,XCom消息缓存现在需要在10秒的时间段内(排除超时加上初始的5秒检测时间段)存储组交换的消息,⽽不是以前的5秒时间段内存储(仅最初的5秒检测周期)。
指定组复制组成员在产⽣怀疑之后,从组中排除怀疑失败的成员之前等待的时间(以秒为单位)。在产⽣怀疑之前的最初5秒检测时间不计⼊该时间。
以前,等待时间 默认指定 为0,这意味着在5秒的检测时间结束后,可疑成员应⽴即被驱逐出境。根据⽤户的反馈,等待时间现在默认为5秒,这会使与该组失去联系的成员总共有10秒的时间重新连接到该组。如果成员确实在此时间重新连接,则它可以从XCom消息缓存中恢复丢失的消息并ONLINE ⾃动返回状态,⽽不是从组中被逐出并需要⾃动重新加⼊过程或⼿动操作员⼲预才能重新加⼊。
如果您以前曾根据成员被驱逐之前的默认时间(仅5秒检测时间)中的预期默认消息量来调整XCom消息缓存的⼤⼩,请增加 设置以说明新的退出超时,它将默认时间加倍到10秒。使⽤新的默认退出超时,您可能会开始在活动组成员上看到来⾃GCS的警告消息,指出当前⽆法访问的成员可能需要进⾏恢复的消息已从消息缓存中删除。此消息表明成员需要使⽤消息缓存来重新连接,并且缓存⼤⼩可能不⾜以⽀持成员被驱逐之前的当前等待时间。
现在默认情况下激活了组复制的⾃动重新加⼊功能。该 系统变量,它从MySQL 8.0.16开始使⽤。此系统变量最初默认为0,因此未激活⾃动重新加⼊,现在默认为3,这意味着成员在被驱逐或超时⽽⽆法加⼊该组时,将进⾏三次尝试。在每次尝试之间,成员等待5分钟。如果在指定次数的尝试之后没有加⼊或停⽌该成员,则成员将继续执⾏由 系统变量。
⾃动重新加⼊功能最⼤程度地减少了⼿动⼲预以使成员重新加⼊⼩组的需要,尤其是在瞬态⽹络问题⾮常普遍的情况下。在⾃动重新连接尝试期间和之间,成员保持超级只读模式,并且不接受写⼊。但是,仍然可以在成员上进⾏读取,随着时间的推移,陈旧读取的可能性会增加。如果要⼲预使成员脱机,则可以随时使⽤ 语句或关闭服务器来⼿动停⽌成员。如果您⽆法忍受在任何时间段内都过时读取的可能性,请设置 系统变量为0,在这种情况下,只要成员被逐出组或连接超时,就需要操作员⼲预。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。