跳到主要内容

RECOVER

描述

该语句用于恢复之前删除的 database、table 或者 partition。支持通过 name、id 来恢复指定的元信息,并且支持将恢复的元信息重命名。

可以通过 SHOW CATALOG RECYCLE BIN 来查询当前可恢复的元信息。

语法:

  1. 以 name 恢复 database

    RECOVER DATABASE db_name;
  2. 以 name 恢复 table

    RECOVER TABLE [db_name.]table_name;
  3. 以 name 恢复 partition

    RECOVER PARTITION partition_name FROM [db_name.]table_name;
  4. 以 name 和 id 恢复 database

    RECOVER DATABASE db_name db_id;
  5. 以 name 和 id 恢复 table

    RECOVER TABLE [db_name.]table_name table_id;
  6. 以 name 和 id 恢复 partition

    RECOVER PARTITION partition_name partition_id FROM [db_name.]table_name;
  7. 以 name 恢复 database 并设定新名字

    RECOVER DATABASE db_name AS new_db_name;
  8. 以 name 和 id 恢复 table 并设定新名字

    RECOVER TABLE [db_name.]table_name table_id AS new_db_name;
  9. 以 name 和 id 恢复 partition 并设定新名字

    RECOVER PARTITION partition_name partition_id AS new_db_name FROM [db_name.]table_name;

说明:

  • 该操作仅能恢复之前一段时间内删除的元信息。默认为 1 天。(可通过 fe.conf 中catalog_trash_expire_second参数配置)
  • 如果恢复元信息时没有指定 id,则默认恢复最后一个删除的同名元数据。
  • 可以通过 SHOW CATALOG RECYCLE BIN 来查询当前可恢复的元信息。

示例

  1. 恢复名为 example_db 的 database
RECOVER DATABASE example_db;
  1. 恢复名为 example_tbl 的 table
RECOVER TABLE example_db.example_tbl;
  1. 恢复表 example_tbl 中名为 p1 的 partition
RECOVER PARTITION p1 FROM example_tbl;
  1. 恢复 example_db_id 且名为 example_db 的 database
RECOVER DATABASE example_db example_db_id;
  1. 恢复 example_tbl_id 且名为 example_tbl 的 table
RECOVER TABLE example_db.example_tbl example_tbl_id;
  1. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition
RECOVER PARTITION p1 p1_id FROM example_tbl;
  1. 恢复 example_db_id 且名为 example_db 的 database,并设定新名字 new_example_db
RECOVER DATABASE example_db example_db_id AS new_example_db;
  1. 恢复名为 example_tbl 的 table,并设定新名字 new_example_tbl
RECOVER TABLE example_db.example_tbl AS new_example_tbl;
  1. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition,并设定新名字 new_p1
RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;

关键词

RECOVER

最佳实践