对于 MySQL Enterprise Backup 8.0.20 及更高版本:表级恢复 (TLR) 允许从备份中恢复选定的表(或模式)(无论是完整备份、部分备份还是使用可
传输表空间创建的备份 (TTS) ) ) 使用
--include-tables
和
--exclude-tables
选项。该功能在本手册中也称为部分还原。以下是执行 TLR 或部分恢复的一些一般要求:
目标服务器必须正在运行。
连接到服务器所需的参数(端口号、套接字名称等)作为mysqlbackup的命令行选项提供,或者在
[client]
默认文件的部分中指定。目标服务器使用的页面大小必须与在其上进行备份的服务器上使用的页面大小相同。
必须在目标服务器上启用 innodb_file_per_table 选项。
对于非 TTS 备份:正在恢复的表必须已经存在于目标服务器上,在相同的表定义中。
对于TTS 备份:正在恢复的表必须 不存在于目标服务器上。
虽然在部分还原备份时不需要指定选项,但如果指定了选项,其值必须与目标服务器的值匹配,否则还原操作将失败(还原 8.0.16 或更早版本的 TTS 备份时,该 选项是必需的)。
--datadir
--datadir
以下是 TLR 或部分恢复的一些限制:
无法选择性地恢复单个分区。
--include-tables
和选项选择的表--exclude-tables
总是完整恢复。不能使用增量备份执行部分还原。
不恢复二进制、中继和撤消日志。
仅对于非 TTS 备份,这些附加限制适用:
部分恢复后,表可能包含来自未提交事务的更改。
部分还原的还原表的自动增量值可能与备份过程结束时的值不同。
加密的 InnoDB 表不能包含在部分还原中。
以下命令从备份中恢复模式
cats
中的表:pets
示例 5.7 从映像备份恢复选定的表
mysqlbackup --socket=/tmp/restoreserver.sock --include-tables="^pets\.cats" --backup-dir=/dba/backuptmp \
--backup-image=/dba/my.mbi copy-back-and-apply-log
以下命令从备份中恢复 “ sales ”数据库中的所有表,但排除名为“ hardware ”的表:
示例 5.8 从映像备份恢复模式中的选定表
mysqlbackup --socket=/tmp/restoreserver.sock --include-tables="^sales\." \
--exclude-tables="^sales\.hardware$" --backup-dir=/dba/backuptmp --backup-image=/dba/my.mbi \
copy-back-and-apply-log
另请参阅第 5.1.5 节“恢复使用该--use-tts
选项创建的备份”以获取有关使用 TTS 备份进行部分恢复的更多信息。
对于 MySQL Enterprise Backup 8.0.19 及之前的版本,部分还原仅支持TTS 备份。