RESTORE
StarRocks 支持备份及恢复以下对象:
- 内部数据库、表(所有类型和分区策略)和分区
- External Catalog 的元数据(自 v3.4.0 开始支持)
- 同步物化视图和异步物化视图
- 逻辑视图(自 v3.4.0 开始支持)
- UDF(自 v3.4.0 开始支持)
提示
有关备份和恢复的概述,请参阅 备份和恢复指南 中。
数据恢复为异步操作。您可以通过 SHOW RESTORE 语句查看恢复作业状态,或通过 CANCEL RESTORE 语句取消恢复作业。
注意
- StarRocks 存算分离集群不支持数据备份和恢复。
- 单一数据库内,仅可同时执行一个备份或恢复作业,否则系统报错。
权限要求
3.0 之前的版本中,拥有 admin_priv 权限才可执行此操作。3.0 及之后的版本中,如需恢复整个数据库,需要拥有 System 级的 REPOSITORY 权限,以及创建数据库、创建表、导入数据的权限;如需恢复特定表,则需要拥有 System 级的 REPOSITORY 权限,以及对特定表的导入权限(INSERT)。例如:
-
授予角色恢复指定表中数据的权限。
GRANT REPOSITORY ON SYSTEM TO ROLE recover_tbl;
GRANT INSERT ON TABLE <table_name> TO ROLE recover_tbl; -
授予角色恢复指定数据库下所有数据的权限。
GRANT REPOSITORY ON SYSTEM TO ROLE recover_db;
GRANT INSERT ON ALL TABLES ALL DATABASES TO ROLE recover_db; -
授予角色恢复 default_catalog 下全部数据库中数据的权限。
GRANT REPOSITORY ON SYSTEM TO ROLE recover_db;
GRANT CREATE DATABASE ON CATALOG default_catalog TO ROLE recover_db;
语法(兼容先前版本)
RESTORE SNAPSHOT <db_name>.<snapshot_name>
FROM <repository_name>
[ ON ( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[ AS <table_alias>] [, ...] ) ]
PROPERTIES ("key"="value", ...)
参数说明
| 参数 | 说明 |
|---|---|
| db_name | 恢复数据至该数据库。 |
| snapshot_name | 数据快照名。 |
| repository_name | 仓库名。 |
| ON | 需要恢复的表名。如不指定则恢复整个数据库。 |
| PARTITION | 需要恢复的分区名。如不指定则恢复对应表的所有分区。您可以通过 SHOW PARTITIONS 语句查看分区名。 |
| PROPERTIES | 恢复操作属性。现支持以下属性:
|
语法(自 v3.4.0 起支持)
-- 恢复 External Catalog 元数据。
RESTORE SNAPSHOT [<db_name>.]<snapshot_name> FROM <repository_name>
{ ALL EXTERNAL CATALOGS | EXTERNAL CATALOG[S] <catalog_name>[, EXTERNAL CATALOG[S] <catalog_name> ...] [ AS <alias> ] }
[ DATABASE <db_name_in_snapshot> [AS <target_db>] ]
[ PROPERTIES ("key"="value" [, ...] ) ]
-- 恢复数据库、表、分区、物化视图、逻辑视图或 UDF。
RESTORE SNAPSHOT [<db_name>.]<snapshot_name> FROM <repository_name>
[ DATABASE <db_name_in_snapshot> [AS <target_db>] ]
[ ON ( restore_object [, ...] ) ]
[ PROPERTIES ("key"="value" [, ...] ) ]
restore_object ::= [
{ ALL TABLE[S] | TABLE[S] <table_name>[, TABLE[S] <table_name> ...] [AS <alias>] } |
{ ALL MATERIALIZED VIEW[S] | MATERIALIZED VIEW[S] <mv_name>[, MATERIALIZED VIEW[S] <mv_name> ...] [AS <alias>] } |
{ ALL VIEW[S] | VIEW[S] <view_name>[, VIEW[S] <view_name> ...] [AS <alias>] } |
{ ALL FUNCTION[S] | FUNCTION[S] <udf_name>[, FUNCTION[S] <udf_name> ...] [AS <alias>] } |
<table_name> PARTITION (<partition_name>[, ...]) [AS <alias>] ]
参数说明
| 参数 | 说明 |
|---|---|
| db_name. | 将对象或快照恢复到目标群集中的数据库的名称。如果该数据库不存在,系统将自动创建。只能指定 AS <target_db> 或 <db_name>. 其中之一。 |
| snapshot_name | 数据快照名。 |
| repository_name | 仓库名。 |
| ALL EXTERNAL CATALOGS | 恢复所有 External Catalog 的元数据。 |
| catalog_name | 待恢复的 External Catalog 名称。 |
| DATABASE db_name_in_snapshot | 对象或快照在源群集中备份时所属数据库的名称。 |
| AS target_db | 将对象或快照恢复到目标群集中的数据库的名称。如果该数据库不存在,系统将自动创建。只能指定 AS <target_db> 或 <db_name>. 其中之一。 |
| ON | 待恢复的对象。如不指定则恢复整个数据库。 |
| table_name | 待恢复的表的名称。 |
| mv_name | 待恢复的物化视图的名称。 |
| view_name | 待恢复的逻辑视图的名称。 |
| udf_name | 待恢复的 UDF 的名称。 |
| PARTITION | 待恢复的分区名。如不指定则恢复对应表的所有分区。 |
| AS alias | 为恢复到目标群集中的对象设置新名称。 |
| PROPERTIES | 恢复操作属性。现支持以下属性:
|