doris恢复库恢复表

今天眼疾手快 不小心删了公司生产环境的表 而且碰巧这个数据没有备份的 当时哥们就呆住 还好doris升级过1.2 刚推出了恢复数据的功能~~~~~这里给老天爷磕一个了~~~~~~

数据删除恢复

Doris为了避免误操作造成的灾难,支持对误删除的数据库/表/分区进行数据恢复,在drop table或者 drop database之后,Doris不会立刻对数据进行物理删除,而是在 Trash 中保留一段时间(默认1天,可通过fe.conf中catalog_trash_expire_second参数配置),管理员可以通过RECOVER命令对误删除的数据进行恢复。

开始数据恢复​

1.恢复名为 example_db 的 database

RECOVER DATABASE example_db;

2.恢复名为 example_tbl 的 table

RECOVER TABLE example_db.example_tbl;

3.恢复表 example_tbl 中名为 p1 的 partition

RECOVER PARTITION p1 FROM example_tbl;

我的情况还更棘手! 我还是删除后又立马心虚地建了这张表 导致recover的是我建的这张空表~

连我的小chatgpt都跟不上时代的步伐!

doris恢复库恢复表_第1张图片

于是我打开了doris技术文档:RECOVER - Apache Doris

找到了指定哪张表恢复的方法!

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

然后可以看到具体的tableid

doris恢复库恢复表_第2张图片

于是在后面跟上它的元数据信息即可! 

recover table dwd_tms_vesselschedule_basicinfo_transitport_df 3066881

以下是所有的例子:

  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 来查询当前可恢复的元信息。

Example

  1. 恢复名为 example_db 的 database
RECOVER DATABASE example_db;

     2. 恢复名为 example_tbl 的 table

RECOVER TABLE example_db.example_tbl;

    3. 恢复表 example_tbl 中名为 p1 的 partition

RECOVER PARTITION p1 FROM example_tbl;

    4. 恢复 example_db_id 且名为 example_db 的 database

RECOVER DATABASE example_db example_db_id;

    5. 恢复 example_tbl_id 且名为 example_tbl 的 table

RECOVER TABLE example_db.example_tbl example_tbl_id;

    6. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition

RECOVER PARTITION p1 p1_id FROM example_tbl;

    7. 恢复 example_db_id 且名为 example_db 的 database,并设定新名字 new_example_db

RECOVER DATABASE example_db example_db_id AS new_example_db;

    8. 恢复名为 example_tbl 的 table,并设定新名字 new_example_tbl

RECOVER TABLE example_db.example_tbl AS new_example_tbl;

    9. 恢复表 example_tbl 中 p1_id 且名为 p1 的 partition,并设定新名字 new_p1

RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;

你可能感兴趣的:(数据库)