该语句用于恢复之前删除的 database、table 或者 partition。支持通过name、id来恢复指定的元信息,并且支持将恢复的元信息重命名。
可以通过 来查询当前可恢复的元信息。
语法:
以name恢复 table
RECOVER TABLE [db_name.]table_name;
以name恢复 partition
RECOVER PARTITION partition_name FROM [db_name.]table_name;
以name和id恢复 database
RECOVER DATABASE db_name db_id;
-
以name和id恢复 partition
RECOVER PARTITION partition_name partition_id FROM [db_name.]table_name;
以name恢复 database 并设定新名字
以name和id恢复 table 并设定新名字
-
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
来查询当前可恢复的元信息。
- 恢复名为 example_db 的 database
RECOVER DATABASE example_db;
- 恢复名为 example_tbl 的 table
- 恢复表 example_tbl 中名为 p1 的 partition
- 恢复 example_db_id 且名为 example_db 的 database
- 恢复 example_tbl_id 且名为 example_tbl 的 table
RECOVER TABLE example_db.example_tbl example_tbl_id;
- 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition
RECOVER PARTITION p1 p1_id FROM example_tbl;
- 恢复 example_db_id 且名为 example_db 的 database,并设定新名字 new_example_db
RECOVER DATABASE example_db example_db_id AS new_example_db;
- 恢复名为 example_tbl 的 table,并设定新名字 new_example_tbl
RECOVER TABLE example_db.example_tbl AS new_example_tbl;
- 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition,并设定新名字 new_p1
RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;