--use-tts
5.1.4 恢复使用选项创建的备份
还原使用可传输表空间 (TTS)
创建的备份
(即使用
--use-tts
选项创建)有一些特殊要求:
目标服务器必须正在运行。
确保连接到服务器所需的参数(端口号、套接字名称等)作为 mysqlbackup的命令行选项提供,或者在
[client]
默认文件的部分中指定。目标服务器使用的页面大小必须与在其上进行备份的服务器上使用的页面大小相同。
必须在目标服务器上启用 innodb_file_per_table 选项。
正在恢复的表不能存在于目标服务器上。
如果要恢复的每表数据文件 (file) 的 InnoDB 文件格式与目标服务器上系统变量
.ibd
的值不匹配,则 恢复失败。innodb_file_format
在这种情况下,使用--force
带有 restore 命令的选项临时更改innodb_file_format
服务器上的值,以允许恢复每个表的数据文件,而不管它们的格式如何。
--use-tts
还原使用选项设置=
创建的单文件备份时
with-minimum-locking
,使用 指定的文件夹
--backup-dir
除了保存临时输出、状态文件和元数据外,还用于临时提取备份中的所有表并执行apply-log
操作以创建在将数据恢复到服务器的数据目录之前更新数据。
可以使用
和
选项从使用可传输表空间 (TTS)
创建的备份中恢复选定的表
。以下命令从备份中恢复
“ sales ”数据库中的所有表,但排除名为“ hardware ”的表:
--include-tables
--exclude-tables
示例 5.7 从 TTS 映像备份恢复选定的表
mysqlbackup --socket=/tmp/restoreserver.sock --datadir=/logs/restoreserverdata --backup-dir=/logs/backup \
--include-tables="^sales\." --exclude-tables="^sales\.hardware$" copy-back-and-apply-log
--rename
以下命令在使用选项
从 TTS 备份还原表时重命名表:
示例 5.8 从 TTS 备份恢复和重命名表
# Using fully qualified table names:
mysqlbackup --socket=/tmp/restoreserver.sock --datadir=/logs/restoreserverdata \
--backup-dir=/BackupDirTemp --backup-image=/home/dbadmin/backups/tts-backup.mbi \
--include-tables="^sales\.cars" --rename="sales.cars to sales.autos" copy-back-and-apply-log
# It works the same if database names are omitted in the argument for --rename:
mysqlbackup --socket=/tmp/restoreserver.sock --datadir=/logs/restoreserverdata \
--backup-dir=/BackupDirTemp --backup-image=/home/dbadmin/backups/tts-backup.mbi \
--include-tables="^sales\.cars" --rename="cars to autos" copy-back-and-apply-log