RESTORE

          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-LOAD
          下一篇
          SELECT-INTO-OUTFILE