[docs](recover) modify recover doc (#13904)

This commit is contained in:
xueweizhang
2022-11-10 20:20:39 +08:00
committed by GitHub
parent 1ef85ae1f2
commit 45a3bb87c4
2 changed files with 161 additions and 11 deletions

View File

@ -32,32 +32,71 @@ RECOVER
### Description
This statement is used to restore a previously deleted database, table or partition
This statement is used to restore a previously deleted database, table or partition. It supports recover meta information by name or id, and you can set new name for recovered meta information.
You can get all meta informations that can be recovered by statement `SHOW CATALOG RECYCLE BIN`.
grammar:
1. restore database
1. restore database by name
```sql
RECOVER DATABASE db_name;
```
2. restore table
2. restore table by name
```sql
RECOVER TABLE [db_name.]table_name;
```
3. restore partition
3. restore partition by name
```sql
RECOVER PARTITION partition_name FROM [db_name.]table_name;
```
4. restore database by name and id
```sql
RECOVER DATABASE db_name db_id;
```
5. restore table by name and id
```sql
RECOVER TABLE [db_name.]table_name table_id;
```
6. restore partition by name and id
```sql
RECOVER PARTITION partition_name partition_id FROM [db_name.]table_name;
```
7. restore database by name, and set new db name
```sql
RECOVER DATABASE db_name AS new_db_name;
```
8. restore table by name and id, and set new table name
```sql
RECOVER TABLE [db_name.]table_name table_id AS new_db_name;
```
9. restore partition by name and id, and set new partition name
```sql
RECOVER PARTITION partition_name partition_id AS new_db_name FROM [db_name.]table_name;
```
illustrate:
- This operation can only restore meta information that was deleted in the previous period. Default is 1 day. (Configurable through the `catalog_trash_expire_second` parameter in fe.conf)
- If a new meta information with the same name and type is created after the meta information is deleted, the previously deleted meta information cannot be recovered
- If you recover a meta information by name without id, it will recover the last dropped one which has same name.
- You can get all meta informations that can be recovered by statement `SHOW CATALOG RECYCLE BIN`.
### Example
@ -79,9 +118,46 @@ RECOVER TABLE example_db.example_tbl;
RECOVER PARTITION p1 FROM example_tbl;
```
4. Restore the database named example_db with id example_db_id
```sql
RECOVER DATABASE example_db example_db_id;
```
5. Restore the table named example_tbl with id example_tbl_id
```sql
RECOVER TABLE example_db.example_tbl example_tbl_id;
```
6. Restore the partition named p1 with id p1_id in table example_tbl
```sql
RECOVER PARTITION p1 p1_id FROM example_tbl;
```
7. Restore the database named example_db with id example_db_id, and set new name new_example_db
```sql
RECOVER DATABASE example_db example_db_id AS new_example_db;
```
8. Restore the table named example_tbl, and set new name new_example_tbl
```sql
RECOVER TABLE example_db.example_tbl AS new_example_tbl;
```
9. Restore the partition named p1 with id p1_id in table example_tbl, and new name new_p1
```sql
RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;
```
### Keywords
RECOVER
### Best Practice

View File

@ -32,34 +32,71 @@ RECOVER
### Description
该语句用于恢复之前删除的 database、table 或者 partition
该语句用于恢复之前删除的 database、table 或者 partition。支持通过name、id来恢复指定的元信息,并且支持将恢复的元信息重命名。
可以通过 `SHOW CATALOG RECYCLE BIN` 来查询当前可恢复的元信息。
语法:
1. 恢复 database
1. 以name恢复 database
```sql
RECOVER DATABASE db_name;
```
2. 恢复 table
2. 以name恢复 table
```sql
RECOVER TABLE [db_name.]table_name;
```
3. 恢复 partition
3. 以name恢复 partition
```sql
RECOVER PARTITION partition_name FROM [db_name.]table_name;
```
4. 以name和id恢复 database
```sql
RECOVER DATABASE db_name db_id;
```
5. 以name和id恢复 table
```sql
RECOVER TABLE [db_name.]table_name table_id;
```
6. 以name和id恢复 partition
```sql
RECOVER PARTITION partition_name partition_id FROM [db_name.]table_name;
```
7. 以name恢复 database 并设定新名字
```sql
RECOVER DATABASE db_name AS new_db_name;
```
8. 以name和id恢复 table 并设定新名字
```sql
RECOVER TABLE [db_name.]table_name table_id AS new_db_name;
```
9. 以name和id恢复 partition 并设定新名字
```sql
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
@ -81,9 +118,46 @@ RECOVER TABLE example_db.example_tbl;
RECOVER PARTITION p1 FROM example_tbl;
```
4. 恢复 example_db_id 且名为 example_db 的 database
```sql
RECOVER DATABASE example_db example_db_id;
```
5. 恢复 example_tbl_id 且名为 example_tbl 的 table
```sql
RECOVER TABLE example_db.example_tbl example_tbl_id;
```
6. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition
```sql
RECOVER PARTITION p1 p1_id FROM example_tbl;
```
7. 恢复 example_db_id 且名为 example_db 的 database,并设定新名字 new_example_db
```sql
RECOVER DATABASE example_db example_db_id AS new_example_db;
```
8. 恢复名为 example_tbl 的 table,并设定新名字 new_example_tbl
```sql
RECOVER TABLE example_db.example_tbl AS new_example_tbl;
```
9. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition,并设定新名字 new_p1
```sql
RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;
```
### Keywords
RECOVER
### Best Practice