OceanBase 支持回收站功能,通过回收站可以闪回已删除的表。默认回收站是开启的,回收站是否开启由租户变量 recyclebin 控制。

    开启/关闭回收站的语法是:

    1. set global recyclebin = ON | OFF ;

    修改回收站的开启状态后,只对后续新连接会话生效。

    • 示例:闪回被删除的表。
    1. obclient> drop table if exists t1;
    2. obclient> create table t1(id bigint not null primary key, gmt_create datetime not null default current_timestamp);
    3. Query OK, 0 rows affected (0.09 sec)
    4. obclient> insert into t1(id) values(1),(2),(3);
    5. Query OK, 3 rows affected (0.02 sec)
    6. Records: 3 Duplicates: 0 Warnings: 0
    7. obclient> select * from t1;
    8. +----+---------------------+
    9. | ID | GMT_CREATE |
    10. +----+---------------------+
    11. | 1 | 2020-02-28 09:47:07 |
    12. | 2 | 2020-02-28 09:47:07 |
    13. | 3 | 2020-02-28 09:47:07 |
    14. +----+---------------------+
    15. 3 rows in set (0.00 sec)
    16. obclient> drop table t1;
    17. Query OK, 0 rows affected (0.03 sec)
    18. obclient> show recyclebin;
    19. *************************** 1. row ***************************
    20. OBJECT_NAME: __recycle_$_20200102_1585650066255592
    21. ORIGINAL_NAME: t1
    22. TYPE: TABLE
    23. CREATETIME: 2020-03-31 18:21:06.255716
    24. 1 row in set (0.03 sec)
    25. obclient> flashback table __recycle_$_20200102_1585650066255592 to before drop rename to t1;
    26. Query OK, 0 rows affected (0.02 sec)
    27. obclient> select * from t1;
    28. +----+---------------------+
    29. | ID | GMT_CREATE |
    30. +----+---------------------+
    31. | 1 | 2020-02-28 09:47:07 |
    32. | 2 | 2020-02-28 09:47:07 |
    33. | 3 | 2020-02-28 09:47:07 |
    34. +----+---------------------+