本章重点介绍 MySQL Enterprise Backup 4.1 中的新功能,以及随着本系列的发布对 MySQL Enterprise Backup 所做的任何重大更改。
MySQL Enterprise Backup 现在支持 乐观增量备份, mysqlbackup只扫描那些自上次备份以来修改过的InnoDB 数据文件,然后将它们保存到增量备份中。它可能使增量备份更快。有关详细信息,请参阅 全扫描与乐观增量备份。
现在已经为 MySQL Enterprise Backup 实施了一整套退出代码。此外,新的mysqlbackup命令
print-message
为新选项提供的任何给定退出代码返回退出消息--error-code
。有关详细信息,请参阅 第 13.1 节,“MySQL 企业备份的退出代码”。现在可以使用多个工作线程并行执行应用日志操作,这可以提高操作的性能。可以使用该
--process-threads
选项指定要使用的线程数。MySQL Enterprise Backup 现在支持该
--ssl-mode
选项,使您能够指定与服务器的连接的安全状态。 它取代了现在已弃用的客户端--ssl
和 选项。--ssl-verify-server-cert
详见 MySQL 5.7参考手册--ssl-mode
对该选项 的描述。已经实施了许多措施来通过减少服务器锁定的热备份最后阶段的持续时间来提高热备份的性能。有关详细信息,请参阅 MySQL Enterprise Backup 4.1 发行说明。
一个新选项,
--skip-final-rescan
使mysqlbackup跳过在备份操作接近尾声时数据库被锁定后由 DDL 操作修改的 InnoDB 表的最终重新扫描。有关详细信息,请参阅说明--skip-final-rescan
。mysqlbackup 的输出(进入
stderr
流和消息日志)现在已得到改进,包括mysqlbackup采取的所有步骤的时间戳和线程 ID ,以便为调试目的提供更多信息。该
backup_history
表现在包括以下新列:start_time_utc
end_time_utc
consistency_time_utc
meb_version
server_uuid
(适用于 4.1.2 及更高版本)
对于使用 MySQL Server 5.7.21 及更高版本的 MySQL Enterprise Backup 4.1.1 及更高版本: MySQL Enterprise Backup 现在支持服务器使用 keyring_encrypted_file 和keyring_aws插件。有关详细信息,请参阅 第 6 章,使用加密的 InnoDB 表。
对于 MySQL Enterprise Backup 4.1.1 及更高版本:现在支持使用与 OpenStack Swift 兼容的对象存储服务进行备份和恢复的 HTTP 基本身份验证和非分块传输。有关详细信息,请参阅第 16.15 节,“云存储选项”。
对于 MySQL Enterprise Backup 4.1.2 及更高版本: Oracle Cloud Infrastructure 对象存储客户端身份验证现在支持 OAuth。为此引入了两个新选项
--cloud-storage-url
和--cloud-oauth-token
有关详细信息,请参阅 第 16.15 节,“云存储选项”。对于 MySQL Enterprise Backup 4.1.2 及更高版本:备份服务器的二进制日志,而不是总是恢复到目标服务器上的数据目录,现在默认恢复到它在备份服务器上找到的相同位置 -服务器。它还可以恢复到使用新
--log-bin
选项指定的不同位置。对于 MySQL Enterprise Backup 4.1.2 及更高版本:备份副本服务器的中继日志,而不是总是恢复到目标副本服务器上的数据目录,现在默认恢复到它在服务器上找到的相同位置备份副本服务器。它还可以恢复到使用新
--relay-log
选项指定的不同位置。对于 MySQL Enterprise Backup 4.1.2 及更高版本:当使用组复制设置时, mysqlbackup现在通过确保在每次mysqlbackup操作
backup_history
后在主节点上更新表 有关详细信息,请参阅 第 8 章,将 MySQL Enterprise Backup 与组复制一起使用,包括mysqlbackup连接到服务器的新用户权限要求 ,无论该服务器是否属于组复制设置。对于 MySQL Enterprise Backup 4.1.2 及更高版本:备份服务器上表的存储引擎
mysql.backup_history
已从 CSV 切换为 InnoDB。请参阅 此处了解mysqlbackup进行强制表迁移 所需的特殊用户权限对于 MySQL Enterprise Backup 4.1.3 及更高版本:除了要求由 指定的还原目标数据目录
--datadir
必须不存在或为空之外 , mysqlbackup现在 对 用于覆盖对三个选项的要求)。--innodb_data_home_dir
--innodb_log_group_home_dir
--innodb_undo_directory
--force
对于 MySQL Enterprise Backup 4.1.4 及更高版本:
--lock-wait-retry-count
现在可以使用 一个新选项 来指定mysqlbackupFLUSH TABLES WITH READ LOCK
在备份的最后阶段发出以暂时将数据库置于只读状态的语句之后 尝试的最大重试次数,由于超时而失败. 有关详细信息,请参阅选项的描述。--uncompress
该操作现在支持该选项 ,extract
因此现在可以使用单个命令从压缩的单文件备份中提取和解压缩文件。
对于 MySQL Enterprise Backup 4.1.5 及更高版本:
对于
copy-back-and-apply-log
和 除 之外 的其他单文件操作backup-to-image
,当为--backup-image
选项指定相对路径时, mysqlbackup将路径作为相对于 运行mysqlbackup命令的当前工作目录的路径。该
--rename
选项现在适用于完全和部分恢复:如果不使用
--include-tables
和--exclude-tables
选项,则恢复备份中的所有表,--rename
并按指定重命名该选项选择的表。如果使用
--include-tables
和--exclude-tables
选项,则将这两个选项选中的所有表一起恢复,--rename
选项选中的表按指定重命名。
When a server using the
keyring_file
,keyring_encrypted_file
, orkeyring_aws
was backed up, if it did not contain any encrypted InnoDB tables, the keyring file was not included in the backup. That created a problem when, for example, mysqlbackup was used for a server upgrade, in which case the keyring file was not preserved in the process. mysqlbackup now always looks for the keyring data file and copies it when the above-mentioned keyring plugins are active on the server.Encrypted InnoDB tables can now be included in partial backups and restores using transportable tablespaces (TTS).
The file
backup_gtid_executed.sql
was not included in a TTS backup for a replica server using GTIDs. The file is now included in a TTS backup as long as the--slave-info
option is used.mysqlbackup now skips copying the binary log for an incremental backup when the backup it is based on does not include the binary log. Also, when restoring onto a server an incremental backup that does not contain the binary log, mysqlbackup now renames any binary log files that have already been restored onto the server by adding to them the
.old
extension; the same thing happens when an incremental backup is restored with the--skip-binlog
option.当备份正在进行时清除二进制或中继日志文件时,备份现在会失败;当发现服务器上缺少二进制日志文件时,它也会失败
mysqlbackup
(但是,如果中继日志文件丢失,备份将继续)。该
--incremental-base
选项现在接受一个新值 , 这使得创建差异备份history:last_full_backup
变得容易 。详见说明 。--incremental-base