基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
BACKUP
更新时间:2026-09-09 11:32:35
ALTER SYSTEM BACKUP 语句用于发起数据备份。数据备份包括全量备份和增量备份。
全量备份会备份所有的宏块,增量备份是在上一个全量备份的基础上,备份所有新增和修改过的宏块。
除使用系统参数 data_backup_dest 指定的默认路径外,您还可以使用 TO '<dest>' 语法将数据备份到指定路径。该方式为一次性行为,不会修改系统参数,也不会影响后续的自动调度备份。有关详细操作,请参见 备份到指定目录。
说明
对于 V4.4.2 版本,从 V4.4.2 BP3 版本开始支持指定备份目标路径功能。
使用限制及注意事项
发起数据备份前,需要保证已开启归档模式,并且归档任务的
STATUS为DOING。查看日志归档任务状态的相关操作,请参见 查看归档进度。
开启归档模式的相关语法,请参见 ARCHIVELOG。
执行增量数据备份需要确保已经有全量数据备份存在,如果在不存在全量数据备份的情况下直接发起增量备份,系统会将增量备份自动降级为全量备份。
对于低版本集群升级到高版本(当前版本)集群的场景,即使当前租户在低版本中已经执行了全量备份,升级到高版本的集群中后,如果直接发起增量备份,系统也会将增量备份自动降级为全量备份。
使用
TO '<dest>'语法指定备份目标路径时,存在以下限制:- 系统租户通过
TO语法仅支持指定 1 个租户,不支持同时对多个租户发起备份。这是因为多个租户会共用同一个目标根路径,会导致不同租户的备份集互相覆盖。 - 如果指定的目标路径上没有历史备份(首次备份),增量备份会自动降级为全量备份。
- 系统租户通过
带
PLUS ARCHIVELOG参数的数据备份任务与修改BACKUP_ARCHIVE_DEST互斥:由于带PLUS ARCHIVELOG参数的数据备份任务执行期间可能会从BACKUP_ARCHIVE_DEST上拷贝 Piece 文件,为避免出现 Piece 一边拷贝一边删除的场景,修改BACKUP_ARCHIVE_DEST期间发起带PLUS ARCHIVELOG参数的数据备份任务会失败;带PLUS ARCHIVELOG参数的数据备份任务执行期间,修改BACKUP_ARCHIVE_DEST也会失败,系统会返回OPT_NOT_ALLOW错误。修改BACKUP_ARCHIVE_DEST的相关语法,请参见 SET BACKUP_ARCHIVE_DEST。
权限要求
需要由 sys 租户的 root 用户(root@sys) 或各租户的管理员用户执行。其中:
- MySQL 模式的默认管理员用户为
root用户。 - Oracle 模式的默认管理员用户为
SYS用户。
语法
ALTER SYSTEM backup_action [DESCRIPTION [=] 'description'];
backup_option:
BACKUP DATABASE [TO 'dest'] [PLUS ARCHIVELOG]
| BACKUP TENANT [=] {tenant_name[, tenant_name]...} [TO 'dest'] [PLUS ARCHIVELOG]
| BACKUP INCREMENTAL DATABASE [TO 'dest'] [PLUS ARCHIVELOG]
| BACKUP INCREMENTAL TENANT [=] tenant_name [TO 'dest'] [PLUS ARCHIVELOG]
参数说明
| 参数 | 描述 |
|---|---|
| PLUS ARCHIVELOG | 在数据备份中添加 PLUS ARCHIVELOG 关键字后,可以在数据备份过程中同时将归档日志一起备份,最终备份目录下会生成一份带有归档日志的完整数据集。由于该数据集具备恢复能力,用户可以不依赖归档日志,使用该数据集将租户的数据恢复到 MIN_RESTORE_SCN 位点(备份集最新可恢复的 SCN)。 |
| tenant_name | 系统租户指定待备份的租户名。支持同时指定多个租户名,不同租户名之间使用英文逗号(,)分隔;使用 TO 'dest' 语法指定备份目标路径时,仅支持指定 1 个租户。如果需要指定所有用户租户,需要在系统租户下执行 ALTER SYSTEM BACKUP [INCREMENTAL] DATABASE 语句。
注意仅系统租户在执行此命令时可以通过 |
| INCREMENTAL | 表示增量备份。 |
| dest | 指定备份目标路径。为可选项,不指定时使用系统参数 data_backup_dest 指定的默认路径。该语法为一次性行为,不会修改系统参数,也不会影响后续的自动调度备份。
注意使用 |
| description | 指定该操作的描述信息,可选。 |
示例
假设当前集群中有 3 个租户,分别是 sys、mysql_tenant 和 oracle_tenant,且租户 mysql_tenant 和 oracle_tenant 均已完成发起数据备份前的准备工作。
系统租户
系统租户对集群中的所有用户租户发起全量数据备份。
obclient [oceanbase]> ALTER SYSTEM BACKUP DATABASE;语句执行后,系统会对集群中的
mysql_tenant租户和oracle_tenant租户发起全量数据备份。系统租户对租户
mysql_tenant发起全量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP TENANT = mysql_tenant;系统租户对租户
mysql_tenant发起带归档日志的全量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP TENANT = mysql_tenant PLUS ARCHIVELOG;语句执行后,系统会在该租户的数据备份路径下生成一份带有归档日志的完整数据集。对于社区版用户和单机版用户,在物理备库场景下,可以使用该数据集创建出备租户,有关如何使用带归档日志的完整数据集创建备租户的详细操作,请参见 使用 BACKUP DATABASE PLUS ARCHIVELOG 功能创建备租户。
系统租户对集群中的所有租户发起增量数据备份。
obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE;本示例中,语句执行后,系统会对集群中的
mysql_tenant租户和oracle_tenant租户发起增量数据备份。系统租户对租户
mysql_tenant发起增量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant;系统租户对租户
mysql_tenant发起指定备份目标路径的全量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP TENANT = mysql_tenant TO 'file:///data/backup/one_time_dest';系统租户对租户
mysql_tenant发起指定备份目标路径的增量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant TO 'file:///data/backup/one_time_dest';系统租户对租户
mysql_tenant发起指定备份目标路径的全量数据备份,同时备份归档日志。obclient [oceanbase]> ALTER SYSTEM BACKUP TENANT = mysql_tenant TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;系统租户对租户
mysql_tenant发起指定备份目标路径的增量数据备份,同时备份归档日志。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL TENANT = mysql_tenant TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;
用户租户
租户
mysql_tenant对本租户发起全量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP DATABASE;租户
oracle_tenant对本租户发起带归档日志的全量数据备份。obclient [SYS]> ALTER SYSTEM BACKUP DATABASE PLUS ARCHIVELOG;租户
mysql_tenant对本租户发起增量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE;租户
mysql_tenant对本租户发起指定备份目标路径的全量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP DATABASE TO 'file:///data/backup/one_time_dest';租户
mysql_tenant对本租户发起指定备份目标路径的增量数据备份。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE TO 'file:///data/backup/one_time_dest';租户
mysql_tenant对本租户发起指定备份目标路径的增量数据备份,同时备份归档日志。obclient [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;租户
mysql_tenant对本租户发起指定备份目标路径的全量数据备份,同时备份归档日志。obclient [oceanbase]> ALTER SYSTEM BACKUP DATABASE TO 'file:///data/backup/self_contained_dest' PLUS ARCHIVELOG;