赵渝强老师OceanBase的租户回收站

作者:袖梨 2026-07-08

img_6a4de1c6e33d330.webp

为防止恶意或误操作导致的数据不可恢复性丢失,OceanBase数据库提供了回收站功能,从而支持租户级的数据的快速恢复功能。本文介绍如何恢复回收站中的租户。OceanBase数据库可以通过flashback tenant语句恢复回收站中的租户。视频讲解如下


下面是具体的操作步骤:

(1)使用root用户登录到集群的sys租户。

(2)查看当前数据库集群是否开启回收站。

show variables like 'recyclebin';n# 输出信息如下:n+---------------+-------+n| Variable_name | Value |n+---------------+-------+n| recyclebin | OFF |n+---------------+-------+n1 row in set (0.012 sec)","id":"z8ZMD"}">

(3)针对整个租户(Global)开启或关闭回收站。

set global recyclebin = on;nob> show variables like 'recyclebin';n# Global设置在整个租户内生效。n# 设置后,对当前Session无效,需要重新登录建立新的Session才会生效。","id":"FIRmz"}">

(4)退出当前会话并重新登录,再查看回收站的状态

show variables like 'recyclebin';n# 输出信息如下:n+---------------+-------+n| Variable_name | Value |n+---------------+-------+n| recyclebin | ON |n+---------------+-------+n1 row in set (0.005 sec)","id":"zZHLH"}">

(5)回收站也可以针对当前会话开启或者关闭,例如:

set @@recyclebin = on;nob> set @@recyclebin = off;","id":"3ZDvC"}">

(6)开启回收站后,查看回收站中的信息。

show recyclebin;nEmpty set (0.016 sec)","id":"Z5UnC"}">

(7)创建一个新的租户后,并使用drop tenant语句删除该租户。

create tenant if not exists mytenant02 n primary_zone='zone1', n resource_pool_list=('rp1')n set ob_tcp_invited_nodes='%';nob> drop tenant mytenant02;","id":"sGKub"}">

(8)查看回收站中的信息。

show recyclebin;n# 输出的信息如下:n+-------------------+---------------+--------+----------------------------+n| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME |n+-------------------+---------------+--------+----------------------------+n| __recycle_$_1_1744| mytenant02 | TENANT | 2025-04-09 17:44:17.213979 |n+-------------------+---------------+--------+----------------------------+n1 row in set (0.006 sec)","id":"qBgNx"}">

(9)通过flashback tenant语句,恢复回收站中的租户。

flashback tenant mytenant02 to before drop;","id":"QgXMW"}">

(10)查看dba_ob_tenants视图和回收站确认执行结果。

show recyclebin;nEmpty set (0.010 sec)nob> use oceanbase;nob> select tenant_id, tenant_name,tenant_type,create_time from dba_ob_tenants;n+-----------+-------------+-------------+----------------------------+n| tenant_id | tenant_name | tenant_type | create_time |n+-----------+-------------+-------------+----------------------------+n| 1 | sys | SYS | 2025-04-09 14:50:06.117812 |n| 1003 | META$1004 | META | 2025-04-09 17:42:27.521615 |n| 1004 | mytenant02 | USER | 2025-04-09 17:42:27.521615 |n+-----------+-------------+-------------+----------------------------+n3 rows in set (0.102 sec)","id":"PFdpm"}">

(11)回收站不仅仅可以针对租户,也可以针对其他的数据库对象。例如:

show variables like '%recyclebin%';n+---------------+-------+n| Variable_name | Value |n+---------------+-------+n| recyclebin | ON |n+---------------+-------+n1 row in set (0.002 sec)n# 确定表的信息nob> use demo;nob> show tables;n+----------------+n| Tables_in_demo |n+----------------+n| table01 |n+----------------+n# 删除一张表nob> drop table table01;n# 查看回收站nob> show recyclebin;n+--------------------------------+---------------+-------+----------------------------+n| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME |n+--------------------------------+---------------+-------+----------------------------+n| __recycle_$_1_1745401735728152 | table01 | TABLE | 2025-04-23 17:48:55.748140 |n+--------------------------------+---------------+-------+----------------------------+n1 row in set (0.017 sec)n# 执行闪回操作nob> flashback table table01 to before drop;","id":"W48tC"}">

相关文章

精彩推荐