MySQL Enterprise Backup 8.0发行说明/ MySQL Enterprise Backup 8.0.19(2020-01-13,普通可用性)中的更改

MySQL Enterprise Backup 8.0.19(2020-01-13,普通可用性)的变化

MySQL Enterprise Backup 8.0.19是MySQL Enterprise Backup的最新版本。它只支持MySQL Server 8.0.19。对于早期版本的MySQL 8.0,请使用与服务器相同的版本号的MySQL Enterprise Backup版本。对于MySQL Server 5.7,请使用MySQL Enterprise Backup 4.1,以及MySQL Server 5.6和5.5,请使用MySQL Enterprise Backup 3.12。

添加或更改的功能

  • 重要的变化:为了备份到图像,提取,列表映像, 和复制后退和应用日志命令,任何相对路径指定- 留下镜像现在被认为是相对于运行命令的当前目录。(错误# 29943103)

  • 重要的变化:存储引擎mysql.backup_progress.备份服务器上的表已从CSV切换到InnoDB。此外,自动增量主键ID列加上表格上的综合索引backup_idcurrent_timestamp.已添加列。使用组复制设置时,mysqlbackup.现在让我们成为backup_progress.表对服务器组的所有成员可用,方法是确保在每次更新期间在主节点上更新表mysqlbackup.手术。

    当MySQL Enterprise Backup 8.0.19或更高版本尝试在数据库上执行其第一个完整备份时,它会自动检查格式mysql.backup_progress.桌子。如果检测到表中的旧格式(这意味着服务器已从8.0.18或更早版本升级,并且之前已被MySQL Enterprise Backup备份),它会尝试自动执行表上的更新。授予表升级所需的这些权限mysqlbackup.服务器用户:

    GRANT ALTER ON mysql。backup_progress.TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, DROP ON mysql.backup_progress_old TO 'mysqlbackup'@'localhost'; GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_progress_new TO 'mysqlbackup'@'localhost';

    看到备份进度表更新获取详细信息。(Bug #29882544, Bug #28695518)

  • 重要的变化:由于增加了对备份的保护,以防止并行DDL操作导致的不一致性(请参阅下面关于新特性的讨论),因此使用哪个用户mysqlbackup.连接到MySQL服务器现在必须授予选择*。*特权;看授予MySQL权限到备份管理员

  • 已改进备份还原的日志记录:在设置日志文件的大小的步骤中,现在包含日志文件的名称。(bug#30380310)

  • mysqlbackup.现在在被信号终止后打印堆栈跟踪。(bug#30042338)

  • 什么时候mysqlbackup.无法连接到服务器,返回的警告mysqlbackup.现在包括TCP连接的主机名和端口号,以及套接字连接的套接字信息。这对于Group Replication设置特别有帮助mysqlbackup.可能尝试连接到多个主机。(错误# 30040027)

  • 如果在非增量备份期间无法打开二进制日志文件,则备份仍将完成,但备份backup_history表将指示备份失败。使用此修复程序,如果无法打开任何相关的二进制日志文件,则所有类型的备份都会失败,并且抛出适当的错误。(bug#29882381)

  • mysqlbackup.现在包括配置文件auto.cnf.mysqld-auto.cnf.从其备份中的服务器(TTS备份除外)。它们恢复到目标服务器的数据目录backup-auto.cnf.backup-mysqld-auto.cnf分别。要使用这些文件来配置还原的服务器,请在启动服务器之前将它们重命名为原始名称。(bug#27121423,bug#30033486)

  • 二进制日志加密的主键旋转在服务器之间,在完整和增量备份之间,以及由此执行的两个增量备份之间mysqlbackup.,现在支持。在增量备份期间,mysqlbackup.现在记录所有加密的二进制日志文件的加密信息(包括那些在早期的完全备份或增量备份中已经备份的文件),除非--skip-binlog.选项,在这种情况下会给出一个警告,提示旧的二进制日志文件可能变得不可恢复。

    此外,--skip-binlog.选项现在不仅会为当前备份操作跳过二进制日志,还可以跳过基于当前备份的所有后续增量备份。当恢复增量备份时--skip-binlog.选项,或者增量备份不包含二进制日志时,mysqlbackup.将已经使用基本备份恢复的任何二进制日志和索引文件重命名为。老的扩展,然后发出警告。

  • 在过去,如果在进行备份时发生了DDL操作,则备份可能会变得不一致。现在有DDL操作安全(创建表,重命名表,删除表,ALTER TABLE以及映射到的操作ALTER TABLE喜欢创建索引)与备份操作并行发生在服务器上,只要:

错误固定

  • 使用图像备份时使用备份 - 目录到图像来自压缩目录备份的命令包含InnoDB表中的InnoDB表压缩行格式,映像备份无法验证,除非首先将其解压缩到某个目录中。(错误# 31346149)

  • mysqlbackup.报道称,一个提取即使操作成功——src-entry指定备份中不存在的文件。控件的验证——src-entry价值和使mysqlbackup.如果验证失败,抛出一个错误。(错误# 30461566)

  • 在一次提取操作时,提取的文件内容没有进入stdout正如预期的那样--dst-entry = -,但进入名为的文件-代替。(错误# 30451238)

  • 有时,在接收到一些错误的信号后,mysqlbackup.退出无需打印任何错误消息。(bug#30423128)

  • mysqlbackup.有时在备份时挂起重做日志进行归档已经启用。这是由于方式的问题mysqlbackup.在读取重做日志文件和重做日志存档之间切换,这已经通过此修复程序纠正。(bug#30387689)

  • 如果在备份过程的中间删除了服务器上的表空间,然后在进程结束前恢复,以便备份包括该表并成功,mysqlbackup.仍在报道中mysql.backup_history.备份失败的表。(bug#30340161)

  • 在重新启动时,恢复的服务器有时会发出警告{Space:###,Page_No:###}无法恢复{空间:###。发生这种情况是因为从备份的服务器恢复的DoubleWrite缓冲区,包含不再相关的页面。使用此修复程序,备份过程中备份中的双手缓冲区已清除,因此不再恢复。(bug#30286862)

  • 使用OpenSSL 1.1.1进行连接时mysqlbackup.到服务器和——tls版本选项未指定,使用TLSv1.3但输出mysqlbackup.表示它使用了TLSv1.2。(bug#30268505)

  • 使用该服务器的备份keyring_file或者keyring_encrypted_file插件失败与错误文件master_keyring_kef打开失败如果密匙环文件位于服务器的数据目录中。这是因为在这种情况下,插件返回了一个keyring文件的路径,该路径相对于数据目录mysqlbackup.无法找到文件。使用此修复程序,插件将文件的完整路径返回给mysqlbackup.。(错误# 30238406)

  • mysqlbackup.戒烟意外验证命令发出时没有指定任何命令选项。修复,mysqlbackup.在适当的情况下优雅地退出。(错误# 30204114)

  • 的默认值——page-reread-time选项为0毫秒,而不是在手册中记录的100毫秒。(bug#30036877)

  • 当一个复制后退和应用日志操作被应用在一个准备好的备份上,警告应用日志操作已经在该备份上完成在输出中出现了两次mysqlbackup.。(bug#29941423)

  • 备份有时会失败mysqlbackup.报告系统变量时,撤消日志文件看起来损坏Innodb_undo_log_encrypt.已经设定为在服务器上。这是因为在复制文件时,加密信息还没有传播到撤销日志文件侦听器。有了这个解决方案,在这种情况下,mysqlbackup.等待直到复制之前更新撤消日志文件的标题。(bug#29545236)

  • 恢复增量备份时,mysqlbackup.删除的服务器上未包含在增量备份中的服务器上。(bug#29399666)

  • 如果服务器在不同文件路径上有两个外部撤消表空间,但使用相同的文件名,则备份失败。这是因为mysqlbackup.在备份期间将所有undo表空间复制到同一个目录中,导致文件名冲突。有了这个修复,在复制undo表空间时,表空间相对于Innodb_undo_directory.保留,因此将不会再有文件名冲突。(错误# 29340016)

  • 备份失败了在阶段时mysqlbackup.应用了FLUSH TABLES tbl_name [, tbl_name]…与读锁如果任何表名包含保留单词或特殊字符,则对所有非InnoDB表的声明。这是因为mysqlbackup.在发出语句时没有在反馈中包含表名称,此修复程序确保完成。(bug#19709505,bug#74144)