首批通过分布式安全可靠测评,为关键业务系统打造
备份前准备
更新时间:2026-04-16 00:11:36
在进行数据备份前,需要进行一些备份前的准备工作,包括配置备份目的端、备份秘钥等。
配置备份目的端
配置备份目的端时,由于系统租户不包含用户数据,是集群管理用的租户,不支持备份恢复,故 sys 租户无需配置 DATA_BACKUP_DEST 参数。
注意事项
配置备份目的端时,要求每个租户的备份路径需要配置为独立的空目录,不同租户不能配置相同的备份路径。
操作步骤
sys租户或用户租户的租户管理员登录数据库。说明
MySQL 模式的管理员用户为
root用户,Oracle 模式的管理员用户为SYS用户。配置备份目的端。
注意
对于从 OceanBase 数据库 V4.0.x 版本升级到 V4.1.0 版本的场景,版本升级后需要更改备份路径。对于从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.0 版本的场景,版本升级后不需要更改备份路径。
系统租户为指定租户配置备份目的端
ALTER SYSTEM SET DATA_BACKUP_DEST= 'data_backup_path' TENANT = mysql_tenant;用户租户配置本租户的备份目的端
语句如下:
ALTER SYSTEM SET DATA_BACKUP_DEST= 'data_backup_path';
语句相关说明如下:
该语句可以配置备份路径及源端配置。目前,OceanBase 数据库支持的备份介质为 NFS、阿里云 OSS、AWS S3 以及兼容 S3 协议的对象存储,例如:华为 OBS、Google GCS、腾讯云 COS。部分备份介质可能需要满足一些基本要求才能使用,有关各备份介质的具体要求,参见 物理备份与恢复概述 中的 备份介质要求。
指定备份路径的源端即是指定可以访问该备份路径的节点范围。有关备份路径源端配置的详细介绍及说明,参见 SET DATA_BACKUP_DEST。
备份路径的源端配置后,支持修改,具体修改操作,参见 修改备份路径的源端配置。
详细设置说明如下。
阿里云 OSSNFSAWS S3兼容 S3 协议的对象存储当使用 OSS 作为备份介质时,除了设置备份路径,您还可以通过
delete_mode参数来配置备份文件的清理模式。delete_mode参数当前支持delete模式和tagging模式。如果不显式配置delete_mode参数,则默认使用delete模式。此外,从 V4.2.1 BP10 版本开始,OSS 还支持通过
checksum_type参数指定校验算法来校验备份数据的完整性,支持的取值为md5和no_checksum。如果不显式配置checksum_type参数,则默认值为md5。有关
delete_mode参数和checksum_type参数的详细说明,参见 SET DATA_BACKUP_DEST。注意
使用对象存储作为备份介质时,对象存储路径的各项参数由
&符号进行分隔,请确保您输入的参数值中仅包含英文字母大小写、数字、/-_$+=以及通配符。如果您输入了上述以外的其他字符,可能会导致设置失败。使用 OSS 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径,配置备份文件的清理模式,同时指定校验算法为md5。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=md5' TENANT = mysql_tenant;如果不希望校验备份数据的完整性,可以将
checksum_type参数设置为no_checksum,示例如下:obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=no_checksum' TENANT = mysql_tenant;使用 OSS 作为备份介质时,用户租户为本租户设置备份路径,配置备份文件的清理模式,同时指定校验算法为
md5。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=md5';
示例中,
oss://表示使用 OSS 作为备份介质,存储桶名oceanbase-test-bucket,在存储桶中的路径是/backup,同时使用?来分隔路径的其他参数,host用于设置存储桶的主机地址,access_id和access_key用于设置OSS的访问密钥,清理模式为delete,使用 MD5 算法来校验备份数据的完整性。设置
delete模式或tagging模式后,自动清理备份数据的相关操作请参见 自动清理过期备份。注意
使用 NFS 作为备份介质时,需要注意以下事项:
data_backup_dest的值不支持设置为带有问号(?)的字符串。data_backup_dest的值必须设置为绝对路径,保证 OBServer 服务器对data_backup_dest具有写权限。- 必须保证所有 OBServer 服务器都挂载了同一个服务器的 NFS。同时,为保证备份的顺利进行,务必使用本文档中建议的参数挂载 NFS。挂载 NFS 具体操作请参见 部署 NFS 客户端。
使用 NFS 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径的示例如下:obclient> ALTER SYSTEM SET DATA_BACKUP_DEST= 'file:///data/nfs/backup/data' TENANT = mysql_tenant;使用 NFS 作为备份介质时,用户租户为本租户设置备份路径的示例如下:
obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='file:///data/nfs/backup/data';
示例中,
file://表示使用 NFS 作为备份介质,备份路径为file:///data/nfs/backup/data。与 OSS 一样,AWS S3 也支持通过
delete_mode参数来配置备份文件的清理模式,配置方法与 OSS 一样。同样,从 V4.2.1 BP10 版本开始,AWS S3 也支持通过checksum_type参数指定校验算法来校验备份数据的完整性,支持的取值为md5和crc32。如果不显式配置checksum_type参数,则默认为值为md5。有关
delete_mode参数和checksum_type参数的详细说明,参见 SET DATA_BACKUP_DEST。注意
使用对象存储作为备份介质时,对象存储路径的各项参数由
&符号进行分隔,请确保您输入的参数值中仅包含英文字母大小写、数字、/-_$+=以及通配符。如果您输入了上述以外的其他字符,可能会导致设置失败。使用 S3 作为备份介质的配置示例如下:
使用 S3 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径,配置清理模式为delete,指定校验算法为crc32。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=****&access_key=****&s3_region=****&delete_mode=delete&checksum_type=crc32' TENANT = mysql_tenant;使用 S3 作为备份介质时,用户租户为本租户设置备份路径,配置清理模式为
delete,指定校验算法为crc32。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=****&access_key=****&s3_region=****&delete_mode=delete&checksum_type=crc32';
示例中,
s3://表示使用 S3 作为备份介质,存储桶名oceanbase-test-bucket,在存储桶中的路径是/backup/data,同时使用?来分隔路径的其他参数,host用于设置 Amazon S3 服务的域名,access_id和access_key用于设置 AWS 服务的访问密钥,s3_region在使用 S3 作为备份介质时为必选参数,表示 S3 的存储桶所在的地域,清理模式为delete,使用 CRC32 算法来校验备份数据的完整性。由于大多数对象存储兼容了 S3 协议,对于兼容 S3 协议并满足 OceanBase 数据库要求(对象存储需要兼容实现了 OceanBase 系统调用的几个 S3 API 的行为)的对象存储均可以作为 OceanBase 数据库的备份介质,并通过访问 S3 的方式来访问兼容的对象存储,例如:OBS、GCS、OSS 等都是通过 S3 协议访问。
从 V4.2.1 BP10 版本开始,对于通过 S3 协议接入的 OBS、GCS、COS 等对象存储,也支持通过
checksum_type参数指定校验算法来校验备份数据的完整性,仅支持取值为md5。如果不显式配置checksum_type参数,则默认值为md5。有关checksum_type参数的详细说明,参见 SET DATA_BACKUP_DEST。注意
- 使用对象存储作为备份介质时,对象存储路径的各项参数由
&符号进行分隔,请确保您输入的参数值中仅包含英文字母大小写、数字、/-_$+=以及通配符。如果您输入了上述以外的其他字符,可能会导致设置失败。 - 对于部分兼容 S3 协议的对象存储,可能不支持 AWS S3 SDK 默认的 URL 编码方式,在使用
s3://协议访问时,如果出现 9129、9026 等对象存储相关的错误码,建议通过设置集群级配置项 ob_storage_s3_url_encode_type 来指定 AWS S3 发送请求时的 URL 编码方式兼容 Rfc3986 标准。详细设置方法可参考下方 使用 COS 作为备份介质的操作步骤及示例。
使用 OBS 作为备份介质的配置示例如下:
使用 OBS 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****' TENANT = mysql_tenant;使用 OBS 作为备份介质时,用户租户为本租户设置备份路径。
obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****';
上述示例中,
s3://表示使用兼容 S3 协议的对象存储作为备份介质,存储桶名oceanbase-test-bucket,在存储桶中的路径是/backup/data,同时使用?来分隔路径的其他参数,host用于设置 OBS 服务的域名,access_id和access_key用于设置 OBS 服务的访问密钥。使用 GCS 作为备份介质的配置示例如下:
使用 GCS 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径。obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=https://storage.googleapis.com&access_id=****&access_key=****' TENANT = mysql_tenant;使用 GCS 作为备份介质时,用户租户为本租户设置备份路径。
obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=https://storage.googleapis.com&access_id=****&access_key=****';
上述示例中,
s3://使用兼容 S3 协议的对象存储作为备份介质,存储桶名oceanbase-test-bucket,在存储桶中的路径是/backup/data,同时使用?来分隔路径的其他参数,host用于设置 GCS 服务的域名,access_id和access_key用于设置 GCS 服务的访问密钥。使用 COS 作为备份介质时的操作步骤及示例如下:
说明
该功能从 V4.2.1 BP9 版本开始支持。
查看集群级配置项
ob_storage_s3_url_encode_type的取值。obclient> SHOW PARAMETERS LIKE '%ob_storage_s3_url_encode_type%';查询结果如下:
+-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ | zone1 | observer | 172.xx.xxx.xxx | 2882 | ob_storage_s3_url_encode_type | NULL | default | Determines the URL encoding method for S3 requests."default": Uses the S3 standard URL encoding method."compliantRfc3986Encoding": Uses URL encoding that adheres to the RFC 3986 standard. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ 1 row in set如果取值为
default,则修改为compliantRfc3986Encoding。obclient> ALTER SYSTEM SET ob_storage_s3_url_encode_type='compliantRfc3986Encoding';有关该配置项的具体信息,参见 ob_storage_s3_url_encode_type。
设置备份路径并通过
delete_mode参数来配置备份文件的清理模式。使用 COS 作为备份介质时,系统租户为指定租户
mysql_tenant设置备份路径并配置为delete清理模式的示例如下:obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test/backup/data?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete' TENANT = mysql_tenant;使用 COS 作为备份介质时,用户租户为本租户设置备份路径并配置为
delete清理模式的示例如下:obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test/backup/data?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete';示例中,
s3://使用兼容 S3 协议的对象存储作为备份介质,存储桶名oceanbase-test,在存储桶中的路径是/backup/archive,同时使用?来分隔路径的其他参数,host用于设置 COS 的主机地址,即 endpoint(不带存储桶名的地址),access_id和access_key用于设置COS的访问密钥,清理模式设置为delete。
配置成功后,可以通过视图确认详细的配置信息。
sys租户可以通过CDB_OB_BACKUP_PARAMETER视图来查看,用户租户可通过DBA_OB_BACKUP_PARAMETER来查看。有关数据备份相关的参数信息及查看方法,参见 查看数据备份相关参数。
配置后的注意事项及说明
参数 data_backup_dest 设置成功后,默认系统会在配置的目的端所在的目录下创建一个 format 文件,用于校验备份目的端的有效性信息,确保目的端内数据的完整性。故,在配置数据备份的目的端 data_backup_dest 时,需要注意以下事项:
如果
format文件不存在,则要求配置的目的端所在的目录为空,配置项才能设置成功。否则,系统会报-9080的错误,提示 format 文件不存在。如果
format文件已存在,则要求format文件的内容检验通过,配置项才能设置成功。否则,系统会报-9081的错误,提示 format 文件不匹配,format 文件的内容校验主要是检查集群、租户与备份目的端的介质类型等与当前操作的集群、租户及备份目的端介质类型是否匹配。在执行备份任务时,如果
format文件不存在或format文件校验不通过,任务会发起失败。
备份秘钥
在进行数据备份前,还需要考虑源租户的加密情况,如果源租户配置了透明加密,则还需要为源租户备份秘钥。
注意
备份秘钥后,在恢复数据前,如果源租户的加密信息触发过秘钥轮转,则需要重新备份源租户的秘钥。
sys租户或用户租户的租户管理员登录数据库。备份秘钥。
系统租户为指定租户备份秘钥
ALTER SYSTEM BACKUP KEY TENANT = tenant_name TO 'backup_key_path' ENCRYPTED BY 'password';用户租户为本租户备份秘钥
语句如下:
ALTER SYSTEM BACKUP KEY TO 'backup_key_path' ENCRYPTED BY 'password';
语句中:
backup_key_path:指定秘钥待备份的路径。该路径由用户自定义,不能与数据备份或日志归档的路径相同。password:为秘钥备份路径指定加密密码。
系统租户将租户
mysql_tenant的秘钥备份到file:///data_backup_dest/key路径的示例如下:obclient [(none)]> ALTER SYSTEM BACKUP KEY TENANT = mysql_tenant TO 'file:///data_backup_dest/key' ENCRYPTED BY '******';配置成功后,可以通过视图查看秘钥备份的路径。
系统租户通过视图
CDB_OB_BACKUP_STORAGE_INFO查看秘钥备份路径SELECT * FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO;用户租户通过视图
DBA_OB_BACKUP_STORAGE_INFO查看秘钥备份路径MySQL 模式Oracle 模式语句如下:
SELECT * FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO;语句如下:
SELECT * FROM SYS.DBA_OB_BACKUP_STORAGE_INFO;有关视图
CDB_OB_BACKUP_STORAGE_INFO和DBA_OB_BACKUP_STORAGE_INFO中字段的详细说明,请参见 CDB_OB_BACKUP_STORAGE_INFO 和 DBA_OB_BACKUP_STORAGE_INFO。