跳到主要内容
版本:Stable-3.1

BACKUP

功能

备份指定数据库、表或分区的数据。当前 StarRocks 仅支持备份 OLAP 类型表。更多信息,请见 备份和恢复

数据备份为异步操作。您可以通过 SHOW BACKUP 语句查看备份作业状态,或通过 CANCEL BACKUP 语句取消备份作业。作业成功后,您可以通过 SHOW SNAPSHOT 查看特定仓库对应的数据快照信息。

注意

  • 单一数据库内,仅可同时执行一个备份或恢复作业,否则系统报错。
  • 目前 StarRocks 不支持在备份数据时使用压缩算法。

权限要求

3.0 之前的版本中,拥有 admin_priv 权限才可执行此操作。3.0 及之后的版本中,如需备份指定数据表或整个数据库,需要拥有 System 级的 REPOSITORY 权限,以及对应表或对应数据库下所有表的 EXPORT 权限。例如:

  • 授予角色从指定的表中导出数据的权限。

    GRANT REPOSITORY ON SYSTEM TO ROLE backup_tbl;
    GRANT EXPORT ON TABLE <table_name> TO ROLE backup_tbl;
  • 授予角色从指定数据下所有表中导出数据的权限。

    GRANT REPOSITORY ON SYSTEM TO ROLE backup_db;
    GRANT EXPORT ON ALL TABLES IN DATABASE <database_name> TO ROLE backup_db;
  • 授予角色从所有数据库的所有表中导出数据的权限。

    GRANT REPOSITORY ON SYSTEM TO ROLE backup;
    GRANT EXPORT ON ALL TABLES IN ALL DATABASES TO ROLE backup;

语法

BACKUP SNAPSHOT <db_name>.<snapshot_name>
TO <repository_name>
[ ON ( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[, ...] ) ]
[ PROPERTIES ("key"="value" [, ...] ) ]

参数说明

参数说明
db_name需要备份的数据所属的数据库名。
snapshot_name指定数据快照名。全局范围内,快照名不可重复。
repository_name仓库名。您可以通过 CREATE REPOSITORY 创建仓库。
ON需要备份的表名。如不指定则备份整个数据库。
PARTITION需要备份的分区名。如不指定则备份对应表的所有分区。
PROPERTIES数据快照属性。现支持以下属性:type:备份类型。当前仅支持 FULL,即全量备份。默认:FULLtimeout:任务超时时间。单位:秒。默认:86400

示例

示例一:全量备份 example_db 数据库到仓库 example_repo 中。

BACKUP SNAPSHOT example_db.snapshot_label1
TO example_repo
PROPERTIES ("type" = "full");

示例二:全量备份 example_db 数据库下的表 example_tbl 到仓库 example_repo 中。

BACKUP SNAPSHOT example_db.snapshot_label2
TO example_repo
ON (example_tbl);

示例三:全量备份 example_db 数据库中表 example_tblp1p2 分区和表 example_tbl2 到仓库 example_repo 中。

BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo
ON(
example_tbl PARTITION (p1, p2),
example_tbl2
);