基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
备份到指定目录
更新时间:2026-09-09 10:31:43
在日常运维中,有时需要将数据备份到指定的存储目录,而非系统参数 data_backup_dest 指定的默认路径。您可以在发起数据备份时,通过 TO 语法指定备份目标路径,备份数据将写入该指定路径。这是一次性行为,不会修改系统参数,也不会影响后续的自动调度备份。
说明
对于 V4.4.2 版本,从 V4.4.2 BP3 版本开始支持该功能。
前提条件
在发起备份到指定目录前,您需要确认以下事项:
确认当前已开启归档模式,且日志归档任务的
STATUS为DOING。查看日志归档任务状态的相关操作请参见 查看归档进度。
开启归档模式的相关操作请参见 开启归档模式。
确认备份目标路径可用。备份目标路径支持支持 NFS、阿里云 OSS、AWS S3 以及兼容S3 协议的对象存储等存储介质,
dest_path的格式需遵循对应备份介质的路径规范,有关各备份介质的详细要求,请参见 备份前准备。
使用限制
集群版本要求为 V4.4.2 BP3 及以上,低于该版本时系统将返回错误码
ERROR 1235 (0A000) : %s not supported,表示当前集群版本不满足最低要求,请升级集群后再使用该功能。在未开启归档模式,或日志归档任务状态不为
DOING的情况下发起备份,系统将返回错误码ERROR 9040 (HY000) : backup can not start。数据备份依赖归档日志,请先开启归档模式并确认日志归档任务正常运行后再发起备份。系统租户通过
TO语法发起备份时,仅支持指定 1 个租户,不支持同时对多个租户发起备份,也不支持省略TENANT子句。违反上述约束时,系统将返回错误码ERROR 1235 (0A000) : %s not supported。- 系统租户执行
BACKUP TENANT = t1, t2 TO 'dest_path'且同时指定多个租户时,多个租户会共用同一个目标根路径,会导致不同租户的备份集互相覆盖。 - 系统租户执行
BACKUP DATABASE TO 'dest_path'且不指定TENANT子句时,缺少目标租户信息,系统租户无法确定需要为哪个租户发起备份。
- 系统租户执行
用户租户仅支持对本租户执行备份操作,不能通过
TENANT子句指定其他租户,否则系统将返回错误码ERROR 1235 (0A000) : %s not supported。指定的目标路径必须有效且可访问,否则系统将返回错误码
ERROR 9116 (HY000) : no I/O operation permission of the object storage。如果指定的目标路径上不存在历史备份(首次备份),增量备份将自动降级为全量备份。
通过
TO语法发起备份不会修改系统参数data_backup_dest的值,后续发起不带TO语法的备份时,仍会使用系统参数配置的默认路径或报错。
发起备份到指定目录
满足上述前提条件后,您可以按照以下方式发起备份到指定目录。
系统租户发起备份到指定目录
sys 租户可以对集群中的指定租户发起全量或增量备份,并将数据备份到指定目录。
使用
root用户登录集群的sys租户。(可选)设置租户的备份并发度。
备份并发度由租户级配置项
ha_low_thread_score控制,该配置项用于指定备份、备份清理等中低优先级别任务队列使用的线程数,取值范围为 [0, 100],默认值为0。在开始备份前,可以适当提高配置项ha_low_thread_score的值,建议每次将数值翻倍。查看配置项ha_low_thread_score的相关操作,请参见 查看数据备份相关参数。有关配置项
ha_low_thread_score的详细说明,请参见 ha_low_thread_score。设置集群中所有租户的备份并发度
obclient [(none)]> ALTER SYSTEM SET ha_low_thread_score = 10 TENANT = all_user;或者
obclient [(none)]> ALTER SYSTEM SET ha_low_thread_score = 10 TENANT = all;说明
OceanBase 数据库从 V4.2.1 版本开始,
TENANT = all_user与TENANT = all语义相同,在需要生效范围为所有用户租户时,推荐使用TENANT = all_user,后续TENANT = all将废弃不再使用。设置集群中指定租户的备份并发度
obclient [(none)]> ALTER SYSTEM SET ha_low_thread_score = 10 TENANT = mysql_tenant;
执行以下语句,发起备份到指定目录。
系统租户支持以下指定路径的全量和增量备份方式:
全量备份
ALTER SYSTEM BACKUP TENANT = <tenant_name> TO 'dest_path' [PLUS ARCHIVELOG];增量备份
ALTER SYSTEM BACKUP INCREMENTAL TENANT = <tenant_name> TO 'dest_path' [PLUS ARCHIVELOG];
其中,
tenant_name为需要备份的租户名称,dest_path为备份的目标路径。PLUS ARCHIVELOG为可选,添加PLUS ARCHIVELOG后,可以在数据备份过程中同时将归档日志一起备份到指定目录,最终备份目录下会生成一份带有归档日志的完整数据集。该数据集具备恢复能力,您可以不依赖归档日志,使用该数据集将租户的数据恢复到MIN_RESTORE_SCN位点。说明
系统租户通过 `TO` 语法仅支持指定 1 个租户,不支持同时对多个租户发起备份,也不支持省略 `TENANT` 子句。
示例如下:
对租户
mysql_tenant发起全量备份到指定目录。obclient [(none)]> ALTER SYSTEM BACKUP TENANT = mysql_tenant TO 'file:///data/backup/sys_one_time_dest';命令执行成功后,系统会将
mysql_tenant租户的全量数据备份到指定目录/data/backup/sys_one_time_dest。对租户
mysql_tenant发起增量备份到指定目录。obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant TO 'file:///data/backup/sys_one_time_dest';命令执行成功后,系统会将
mysql_tenant租户的增量数据备份到指定目录/data/backup/sys_one_time_dest。对租户
mysql_tenant发起全量备份并同时备份归档日志到指定目录。obclient [(none)]> ALTER SYSTEM BACKUP TENANT = mysql_tenant TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;命令执行成功后,系统会在指定目录
/data/backup/self_contained_dest下生成一份带有归档日志的完整数据集。对租户
mysql_tenant发起增量备份并同时备份归档日志到指定目录。obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;命令执行成功后,系统会将
mysql_tenant租户的增量数据备份到指定目录/data/backup/self_contained_dest,同时将归档日志一并备份到该目录。
备份过程中,可以实时查看备份进度,具体操作请参见 查看数据备份进度。
用户租户发起备份到指定目录
用户租户可以对本租户发起全量或增量备份,并将数据备份到指定目录,不会影响其他租户。
租户管理员登录到数据库。
本示例中,您可以使用
root用户登录mysql_tenant租户,也可以使用SYS用户登录oracle_tenant租户。(可选)设置本租户的备份并发度。
备份并发度由租户级配置项
ha_low_thread_score控制,该配置项用于指定备份、备份清理等中低优先级别任务队列使用的线程数,取值范围为 [0, 100],默认值为0。在开始备份前,可以适当提高配置项ha_low_thread_score的值,建议每次将数值翻倍。查看配置项ha_low_thread_score的相关操作,请参见 查看数据备份相关参数。有关配置项
ha_low_thread_score的详细说明,请参见 ha_low_thread_score。obclient [(none)]> ALTER SYSTEM SET ha_low_thread_score = 10;执行以下语句,发起备份到指定目录。
用户租户支持以下指定路径的全量和增量备份方式:
全量备份
ALTER SYSTEM BACKUP DATABASE TO 'dest_path' [PLUS ARCHIVELOG];增量备份
ALTER SYSTEM BACKUP INCREMENTAL DATABASE TO 'dest_path' [PLUS ARCHIVELOG];
其中,
dest_path为备份的目标路径。PLUS ARCHIVELOG为可选,添加PLUS ARCHIVELOG后,可以在数据备份过程中同时将归档日志一起备份到指定目录,最终备份目录下会生成一份带有归档日志的完整数据集。该数据集具备恢复能力,您可以不依赖归档日志,使用该数据集将租户的数据恢复到MIN_RESTORE_SCN位点。示例如下:
对本租户发起全量备份到指定目录。
obclient [(none)]> ALTER SYSTEM BACKUP DATABASE TO 'file:///data/backup/one_time_dest';命令执行成功后,系统会将本租户的全量数据备份到指定目录
/data/backup/one_time_dest。对本租户发起增量备份到指定目录。
obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE TO 'file:///data/backup/one_time_dest';命令执行成功后,系统会将本租户的增量数据备份到指定目录
/data/backup/one_time_dest。对本租户发起全量备份并同时备份归档日志到指定目录。
obclient [(none)]> ALTER SYSTEM BACKUP DATABASE TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;命令执行成功后,系统会在指定目录
/data/backup/self_contained_dest下生成一份带有归档日志的完整数据集。对本租户发起增量备份并同时备份归档日志到指定目录。
obclient [(none)]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;命令执行成功后,系统会将本租户的增量数据备份到指定目录
/data/backup/self_contained_dest,同时将归档日志一并备份到该目录。
备份过程中,可以实时查看备份进度,具体操作请参见 查看数据备份进度。
用户租户行为说明
发起全量备份(BACKUP DATABASE)时,不同配置组合下的执行行为如下表所示。
| TO 语法 | 系统参数 data_backup_dest |
执行结果 |
|---|---|---|
带 TO 'dest_path' |
未配置 | 备份正常执行,全量数据写入 dest_path。 |
带 TO 'dest_path' |
已配置 | 备份正常执行,TO 语法指定的目标路径优先生效,全量数据写入 dest_path。 |
不带 TO |
未配置 | 备份失败,系统返回错误码 ERROR 9040 (HY000) : backup can not start,此时可通过 TO 语法指定备份目标路径,或先配置系统参数 data_backup_dest 后再发起备份。 |
不带 TO |
已配置 | 备份正常执行,全量数据写入系统参数 data_backup_dest 配置的默认路径,此前通过 TO 语法发起的备份不会影响该行为。 |
发起增量备份(BACKUP INCREMENTAL DATABASE)时,不同场景下的执行行为如下表所示。
| TO 语法 | 目标路径上是否存在全量备份 | 执行结果 |
|---|---|---|
带 TO 'dest_path' |
存在 | 增量备份正常执行,备份集追加到目标路径上已有的备份链。 |
带 TO 'dest_path' |
不存在 | 备份正常执行,系统自动将增量备份降级为全量备份。 |