11.1 使用 Oracle Secure Backup 备份到磁带

磁带驱动器是用于备份数据的经济实惠的大容量存储设备。MySQL Enterprise Backup 可以与 Oracle Secure Backup (OSB) 等媒体管理软件 (MMS) 连接,以驱动 MySQL 备份和恢复作业。媒体管理软件必须支持第 2 版或更高版本的系统备份到磁带 (SBT) API。

在 MySQL Enterprise Backup 端,您使用参数将备份作业作为单文件备份运行,文件名前面--backup-image带有前缀,并可选择将其他参数传递给 mysqlbackup以控制 SBT 处理的各个方面。这些选项在第 20.9 节 “单文件备份选项”中列出 。 sbt:--sbt-*--sbt-*

在 OSB 端,您可以通过指定调用mysqlbackup的可配置命令来安排 MySQL 企业备份作业。您可以通过定义将这些功能应用于特定备份 的存储选择器并使用 MySQL Enterprise Backup 参数将存储选择器的名称传递给 OSB 来控制加密等 OSB 功能 。 --sbt-database-name=storage_selector

将 MySQL 数据备份到磁带: 

  • 指定 mysqlbackup 参数,唯一标识备份数据。前缀将 备份数据发送到 MMS 而不是本地文件,参数值的其余部分用作 MMS 中的唯一备份名称。 --backup-image=sbt:namesbt:

  • 指定 mysqlbackup--sbt-database-name的参数以使 OSB 操作员能够为来自此 MySQL 源的备份配置存储选择器。(此参数指的是 OSB 操作员定义的 存储选择器,而不是任何 MySQL 数据库名称。)默认情况下, mysqlbackup为该 MMS 参数提供一个值 。此选项的参数限制为 8 个字节。 MySQL

  • 如果安装了多个媒体管理程序,要选择要使用的特定 SBT 库,请指定 mysqlbackup命令的--sbt-lib-path参数。如果不指定该 参数,mysqlbackup将使用正常的操作系统路径和环境变量来定位 SBT 库,该库 在 Linux 和 Unix 系统以及 Windows 系统上命名。当您指定时,除了指定路径之外,您还可以为库使用不同的文件名。 --sbt-lib-pathlibobk.soORASBT.DLL--sbt-lib-path

  • --sbt-environment使用该选项 指定通常由环境变量控制的任何其他特定于产品的设置 。

每次使用 SBT API 对磁带进行在线备份时,除了在表和表中记录备份外 mysql.backup_history, 还会在备份的 MySQL 实例上的mysql.backup_progress表中创建一个条目。mysql.backup_sbt_history通过允许轻松查找有关磁带备份的信息,这有助于磁带备份的管理。表的定义backup_sbt_history 如下所示:

mysql> DESCRIBE `backup_sbt_history`;
+--------------------+---------------+------+-----+---------------------+----------------+
| Field              | Type          | Null | Key | Default             | Extra          |
+--------------------+---------------+------+-----+---------------------+----------------+
| id                 | int           | NO   | PRI | NULL                | auto_increment |
| backup_id          | bigint        | NO   |     | NULL                |                |
| backup_file_name   | varchar(4096) | NO   |     | NULL                |                |
| file_creation_time | timestamp     | NO   |     | 0000-00-00 00:00:00 |                |
| file_expiry_time   | timestamp     | NO   |     | 0000-00-00 00:00:00 |                |
| volume_label       | varchar(64)   | NO   |     | NULL                |                |
| sbt_error_msg      | varchar(4096) | NO   |     | NULL                |                |
| sbt_error_code     | int           | NO   |     | NULL                |                |
+--------------------+---------------+------+-----+---------------------+----------------+

以下是表中字段的说明:

  • id:表的自增主键。

  • backup_id:备份的 ID,也记录在 mysql.backup_historymysql.backup_progress表中的备份条目中。

  • backup_file_name:用户通过 选项提供的文件名。 --backup-image=sbt:name

  • file_creation_time:磁带备份的创建日期和时间。

  • file_expiry_time:磁带备份的到期日期和时间。

  • volume_label:包含磁带备份的物理介质的卷标。

  • sbt_error_msg:错误消息,当检索磁带备份信息时发生错误。

  • sbt_error_code:错误代码,当检索磁带备份信息时发生错误。

mysql.backup_sbt_history如果备份被拆分到多个卷中,则会 在表中创建多个条目,每个卷标一个 。

以下是表中的一些示例条目 mysql.backup_sbt_history

mysql> SELECT * FROM mysql.backup_sbt_history;
+----+-------------------+------------------+---------------------+---------------------+-----------------+---------------+----------------+
| id | backup_id         | backup_file_name | file_creation_time  | file_expiry_time    | volume_label    | sbt_error_msg | sbt_error_code |
+----+-------------------+------------------+---------------------+---------------------+-----------------+---------------+----------------+
|  1 | 15921945689894983 | backup_img1.msb  | 2020-06-15 07:16:09 | 2020-06-15 07:16:09 | /sbt_bup_dir    |               |              0 |
|  2 | 15921945689894983 | backup_img1.msb  | 2020-06-15 07:16:09 | 2020-06-15 07:16:09 | backup_img1.msb |               |              0 |
+----+-------------------+------------------+---------------------+---------------------+-----------------+---------------+----------------+
2 rows in set (0.00 sec)

备份到磁带总是使用一个写入线程。

从磁带恢复 MySQL 数据: 

  • 将mysqlbackup 的 参数指定为恢复操作的一部分。使用备份期间使用的相同 值。此单个参数从适当的磁带设备检索适当的数据。 --backup-image=sbt:namename

  • 可选择使用该 --sbt-lib-path选项,使用与备份操作相同的值。

  • --sbt-environment使用该选项 指定通常由环境变量控制的任何其他特定于产品的设置 。

有关 Oracle Secure Backup 的产品特定信息,请参阅 Oracle Secure Backup 文档

示例 11.1 示例mysqlbackup命令将 MySQL Enterprise Backup 与 Oracle Secure Backup 结合使用

# Uses libobk.so or ORASBT.DLL, at standard locations:
mysqlbackup --port=3306 --protocol=tcp --user=root --password \
  --backup-image=sbt:backup-shoeprod-2011-05-30 \
  --backup-dir=/backup backup-to-image

# Associates this backup with storage selector 'shoeprod':
mysqlbackup --port=3306 --protocol=tcp --user=root --password \
  --backup-image=sbt:backup-shoeprod-2011-05-30 \
  --sbt-database-name=shoeprod \
  --backup-dir=/backup backup-to-image

# Uses an alternative SBT library, /opt/Other-MMS.so:
mysqlbackup --port=3306 --protocol=tcp --user=root --password \
  --backup-image=sbt:backup-shoeprod-2011-05-30 \
  --sbt-lib-path=/opt/Other-MMS.so \
  --backup-dir=/backup backup-to-image