RESTORE
所有文档
menu
没有找到结果,请重新输入

PALO

RESTORE

RESTORE

Description

该语句用于将之前通过 BACKUP 命令备份的数据,恢复到指定数据库下。

该命令为异步操作。提交成功后,需通过 SHOW RESTORE 命令查看进度。

仅支持恢复 OLAP 类型的表。

RESTORE SNAPSHOT [db_name.]snapshot_name
FROM `repository_name`
ON (
    `table_name` [PARTITION (`p1`, ...)] [AS `tbl_alias`],
    ...
)
PROPERTIES ("key"="value", ...);
  • snapshot_name:通过 SHOW SNAPSHOT 命令查看到的 Snapshot 名称。
  • repository_name:仓库名称。
  • ON

    ON 子句指定快照中需要备份的表和分区。其中表名和分区名必须是备份快照中的名称,而 tbl_alias 可以为表指定别名。最终恢复的表会采用这个别名。分区名称不能修改。如果不指定分区,则默认恢复该表的所有分区。所指定的表和分区必须已存在于仓库备份中。

  • PROPERTIES:指定恢复操作相关属性

    • backup_timestamp:指定恢复对应备份快照的哪个时间版本,必填。该信息可以通过 SHOW SNAPSHOT 命令获取。
    • replication_num:指定恢复的表或分区的副本数。默认为3。若恢复已存在的表或分区,则副本数必须和已存在表或分区的副本数相同。同时,Compute Node 节点数量必须大于等于指定副本数。
    • timeout:任务超时时间,默认为一天。单位秒。

Example

  1. 从 example_repo 中恢复备份 snapshot_1 中的表 backup_tbl 到数据库 example_db1,时间版本为 "2020-05-04-16-45-08"。恢复为 1 个副本:

    RESTORE SNAPSHOT example_db1.`snapshot_1`
    FROM `example_repo`
    ON ( `backup_tbl` )
    PROPERTIES
    (
        "backup_timestamp"="2020-05-04-16-45-08",
        "replication_num" = "1"
    );
  2. 从 example_repo 中恢复备份 snapshot_2 中的表 backup_tbl 的分区 p1,p2,以及表 backup_tbl2 到数据库 example_db1,并重命名为 new_tbl,时间版本为 "2020-05-04-17-11-01"。默认恢复为 3 个副本:

    RESTORE SNAPSHOT example_db1.`snapshot_2`
    FROM `example_repo`
    ON
    (
        `backup_tbl` PARTITION (`p1`, `p2`),
        `backup_tbl2` AS `new_tbl`
    )
    PROPERTIES
    (
        "backup_timestamp"="202-05-04-17-11-01"
    );

Keywords

RESTORE, SNAPSHOT

最佳实践

  1. 同一数据库下只能有一个正在执行的恢复操作。
  2. 可以将仓库中备份的表恢复替换数据库中已有的同名表,但须保证两张表的表结构完全一致。表结构包括:表名、列、分区、物化视图等等。
  3. 当指定恢复表的部分分区时,系统会检查分区范围是否能够匹配。
  4. 恢复操作的效率:

    在集群规模相同的情况下,恢复操作的耗时基本等同于备份操作的耗时。如果想加速恢复操作,可以先通过设置 replication_num 参数,仅恢复一个副本,之后在通过调整副本数 ALTER TABLE PROPERTY,将副本补齐。

ROUTINE-LOADSELECT-INTO-OUTFILE