4.3.1 制作单文件备份

为避免拥有大量备份文件来跟踪、存储和传输,mysqlbackup 方便地以单个文件格式创建备份。它还可以将现有备份目录打包成单个文件,将单个文件解压回备份目录,列出单个文件备份的内容,根据嵌入式校验和验证单个文件备份的内容,或者提取单个文件文件到目录树中。有关相关mysqlbackup选项的语法,请参阅 第 16.9 节,“单文件备份选项”

高级:虽然 mysqlbackup也可以创建目录备份(详见 backup命令说明)而不是单文件备份,但在大多数情况下单文件格式更可取:单文件备份更容易处理和存储,目录备份不支持mysqlbackup的某些功能——例如,使用系统备份到磁带 (SBT) API 备份到云和备份到磁带。在整个手册中,目录备份大多被视为高级主题,目录备份的信息和示例都标有Advanced标签,如本段。

由于单文件备份可以流式传输或通过管道传输到另一个进程,例如磁带备份或命令,您可以使用该技术将备份放到另一个存储设备或服务器上,避免原始数据库服务器上的大量存储开销。

要创建单个文件备份,请使用 backup-to-image命令。以下示例说明如何执行单个文件备份和其他相关操作。

示例 4.1 单文件备份到绝对路径

此命令在给定的绝对路径上创建单个备份映像。它仍然需要 --backup-dir,用于保存临时输出、状态和元数据文件。

mysqlbackup --backup-image=/backups/sales.mbi --backup-dir=/backup-tmp backup-to-image

示例 4.2 单个文件备份到相对路径

当提供该--backup-image选项的相对路径而不是绝对路径时,该路径被视为相对于备份目录。因此,在此示例中,生成的单文件备份创建为 /backups/sales.mbi.

mysqlbackup --backup-image=sales.mbi --backup-dir=/backups backup-to-image

示例 4.3 单文件备份到标准输出

以下命令将备份输出转储到标准输出。同样,使用该 --backup-dir选项指定的文件夹用作临时目录。

mysqlbackup --backup-dir=/backups --backup-image=- backup-to-image > /backup/mybackup.mbi

示例 4.4 将现有备份目录转换为单个映像

backup-dir目录被捆绑到 /backup/my.mbi文件中。

mysqlbackup --backup-image=/backup/my.mbi --backup-dir=/var/mysql/backup backup-dir-to-image

示例 4.5 将现有映像提取到备份目录

图像内容被解压到 backup-dir.

mysqlbackup --backup-dir=/var/backup --backup-image=/backup/my.mbi image-to-backup-dir

示例 4.6 列出单个文件备份内容

列出图像内容,每行表示一个文件或目录条目。

mysqlbackup --backup-image=/backup/my.mbi list-image

示例 4.7 验证单个文件备份

以下命令通过验证备份中每个数据页的校验和值来验证单文件备份没有损坏、截断或损坏。

mysqlbackup --backup-image=/logs/fullimage.mi  validate

示例 4.8 将单个文件备份提取到当前目录

以下命令将单个文件备份中的所有内容提取到当前工作目录中。

mysqlbackup --backup-image=/var/my.mbi extract

示例 4.9 将单个文件备份提取到备份目录中

此命令的行为类似于 image-to-backup-dir选项,将单个文件备份的所有内容提取到--backup-dir 选项指定的目录中。

mysqlbackup --backup-image=/var/my.mbi --backup-dir=/var/backup extract

示例 4.10 单个文件的选择性提取

以下命令 meta/comments.txt将备份映像 中的单个文件提取my.mbi到本地路径./meta/comments.txt中。

mysqlbackup --backup-image=/var/my.mbi \
  --src-entry=meta/comments.txt extract

以下命令 使用该 选项 meta/comments.txt将备份映像中的文件提取my.mbi到指定路径 。/tmp/mycomments.txt--dst-entry

mysqlbackup --backup-image=/var/my.mbi \
  --src-entry=meta/comments.txt \
  --dst-entry=/tmp/mycomments.txt extract

The following command dumps the contents of meta/comments.txt (which is inside the single-file backup my.mbi) to standard output.

mysqlbackup --backup-image=/var/my.mbi --src-entry=meta/comments.txt --dst-entry=- extract

Example 4.11 Selective Extract of Single Directory

The following command extracts a single directory meta from the backup image my.mbi into a local file system path ./meta. All contents in the meta directory are extracted, including any subdirectories.

mysqlbackup --backup-image=/backup/my.mbi --src-entry=meta extract

The following command extracts all contents of the meta directory, including all its files and subdirectories, into the directory /tmp/my-meta.

mysqlbackup --backup-image=/backup/my.mbi --src-entry=meta \
  --dst-entry=/tmp/my-meta extract

Example 4.12 Dealing with Absolute Path Names

由于绝对路径名被提取到本地系统中的相同路径,如果您对该路径没有写权限,则可能会出现问题。您可以按如下方式重新映射绝对路径:

mysqlbackup --backup-image=/backup/my.mbi --src-entry=/ --dst-entry=/myroot extract
mysqlbackup --backup-image=/backup/my.mbi --src-entry=. extract

第一个命令将所有绝对路径提取到 /myroot本地系统中的目录。第二个命令提取当前目录的所有相对路径。