4.3.5.3 备份到云存储

MySQL Enterprise Backup 支持云备份。只能在云存储上创建和恢复单个文件备份。所有 与单文件操作兼容的mysqlbackup选项(包括,例如, incrementalcompressionpartialencryption 选项)都可以用于云备份或恢复。

笔记

有关mysqlbackup对云存储支持的一些限制, 请参阅附录 B,MySQL Enterprise Backup的限制。

目前,MySQL Enterprise Backup 支持两种类型的云存储服务:OpenStack Swift 或兼容的对象存储服务(例如 Oracle Cloud Infrastructure Object Storage 和 Oracle Cloud Infrastructure Object Storage Classic)和 Amazon S3。

笔记

由于某些问题,MySQL Enterprise Backup 3.12 目前不支持 Amazon S3。

MySQL Enterprise Backup 3.12 支持 Swift v1.0 API,以及用于身份验证的 OpenStack Identity (Keystone) API v2.0。它还支持使用 Swift 的 TempAuth 系统或 HTTP 基本身份验证进行身份验证。备份在 Swift 中存储为动态大对象,每个大于 5G 的备份被分成多个部分,名称以 <object_name>_part_的形式<number>。有关详细信息,请参阅 OpenStack 文档

使用 mysqlbackup的云选项创建云备份,这在第 14.14 节,“云存储选项”中有详细描述。以下是创建云备份的一些示例命令:

示例 4.18 在 Oracle Cloud Infrastructure Object Storage Classic 上创建云备份

此示例在 Oracle Cloud Infrastructure (OCI) Object Storage Classic 容器中创建云备份,使用 TempAuth 系统对用户凭证进行身份验证。

mysqlbackup \
--cloud-service=openstack  --cloud-container=<OCI Object Storage Classic container> \
--cloud-user-id=<serviceInstanceName>-<identityDomainName>:<userName> --cloud-password='<password>' \
--cloud-tempauth-url=https://<dataCenterCode>.storage.oraclecloud.com \
--cloud-trace=1 --cloud-object=image_900.mbi \
--backup-dir=/home/user/dba/orbackuptmpdir \
--backup-image=- \
backup-to-image


示例 4.19 在 Oracle 云基础设施对象存储上创建云备份

此示例使用 HTTP 基本身份验证在 Oracle 云基础设施 (OCI) 对象存储桶中创建云备份。

mysqlbackup \
--cloud-service=openstack  --cloud-container=<OCI Object Storage bucket> \
--cloud-user-id=<OCI userName> --cloud-password='<OCI auth token>' \
--cloud-ca-info=/etc/ssl/certs/ca-certificates.crt 
--cloud-basicauth-url=https://swiftobjectstorage.<region>.oraclecloud.com/v1/<OCI Object Storage namespace> \
--cloud-trace=1 --cloud-object=backup_image_900.mbi \
--backup-dir=/home/user/dba/orbackuptmpdir \
--backup-image=- \
backup-to-image


示例 4.20 在 Oracle 云基础设施对象存储上创建云增量备份

此示例使用 HTTP 基本身份验证在 Oracle 云基础设施 (OCI) 对象存储桶中创建增量云备份。

mysqlbackup \
--cloud-service=openstack  --cloud-container=<OCI Object Storage bucket> \
--cloud-user-id=<OCI userName> --cloud-password='<OCI auth token>' \
--cloud-ca-info=/etc/ssl/certs/ca-certificates.crt 
--cloud-basicauth-url=https://swiftobjectstorage.<region>.oraclecloud.com/v1/<OCI Object Storage namespace> \
--cloud-object=backup_incr_image_900.mbi \
--backup-dir=/home/user/dba/orincrbackuptmpdir \
--incremental --incremental-base=history:last_backup \
--backup-image=- \
backup-to-image


示例 4.21 在 OpenStack 对象存储上创建云备份

此示例在 OpenStack 对象存储上创建云备份,使用 Keystone 身份服务来验证用户的凭据。

mysqlbackup \
--include-tables=testdb.t1 --use-tts=with-full-locking \
--cloud-service=openstack  --cloud-container=<swift container> \
--cloud-user-id=<keystone user> --cloud-password=<keystone password> \
--cloud-region=<keystone region> --cloud-tenant=<keystone tenant> \
--cloud-identity-url=<keystone url>  \
--cloud-trace=1 --cloud-object=image_800.mbi \
--backup-dir=/home/user/dba/opbackuptmpdir \
--backup-image=- \
backup-to-image


示例 4.22 在 Amazon S3 上创建云备份

mysqlbackup\
--cloud-service=s3 --cloud-aws-region=<aws region> \
--cloud-access-key-id=<aws access key id> --cloud-secret-access-key=< aws secret access key> \
--cloud-bucket=<s3 bucket name> --cloud-object-key=<aws object key> \
--backup-dir=/home/user/dba/s3backuptmpdir \
--backup-image=- \
backup-to-image


云备份始终使用一个写入线程。

此外backup-to-image,所有其他 用于单文件备份的mysqlbackupbackup-dir-to-image操作( 、 list-imagevalidateimage-to-backup-dirextractcopy-backcopy-back-and-apply-log)也可以通过云存储执行。例如:

示例 4.23 将现有映像从 Oracle Cloud Infrastructure 对象存储经典容器提取到备份目录

从 Oracle Cloud Infrastructure Object Storage Classic 容器中提取备份映像,使用 --backup-dir选项指定将映像提取到的目录:

mysqlbackup \
--cloud-service=openstack  --cloud-container=<OCI Object Storage Classic container> \
--cloud-user-id=<serviceInstanceName>-<identityDomainName>:<userName> --cloud-password=<password> \
--cloud-tempauth-url=https://<dataCenterCode>.storage.oraclecloud.com \
--cloud-object=image_930.mbi \
--backup-dir=/home/user/dba/orbackupdir \
--backup-image=- \
image-to-backup-dir


示例 4.24 将现有图像从 Amazon S3 云存储提取到备份目录

从 Amazon S3 中提取备份图像,使用 --backup-dir选项指定将图像提取到的目录:

mysqlbackup\
--cloud-service=s3 --cloud-aws-region=<aws region> \
--cloud-access-key-id=<aws access key id> --cloud-secret-access-key=< aws secret access key> \
--cloud-bucket=<s3 bucket name> --cloud-object-key=<aws object key> \
--backup-dir=/home/user/dba/s3backupdir \
--backup-image=- \
image-to-backup-dir


有关如何从云存储恢复备份映像的信息 , 请参阅第 5.2.6 节,“将备份从云存储恢复到 MySQL 服务器” 。