游乐游手机版
首页/AI教程/文章详情

赵渝强老师OceanBase租户回收站详解

时间:2026-07-08 15:11
OceanBase回收站机制需通过`setglobalrecyclebin=on`开启。执行`droptenant`后租户进入回收站,用`flashbacktenant`命令可恢复。该机制同样适用于表、索引等对象,防止误删,提供统一的数据安全兜底方案。

数据安全是企业级数据库的核心底线,这一点毋庸置疑。在日常运维工作中,误操作删除租户这类“手滑”事件并不罕见。为了避免此类事故导致数据永久丢失,OceanBase数据库内置了一项非常实用的机制——回收站(Recycle Bin)。换句话说,当你执行 drop tenant 之后,数据并不会被立刻清除,而是被安全“暂存”起来,从而为快速恢复争取了宝贵时间。

这一恢复操作的核心,主要依赖一条 SQL 命令:flashback tenant。下面我们将逐步拆解整个操作流程。

如何开启回收站功能

回收站功能并非默认启用,因此第一步需要确认其当前状态。使用 root 用户登录集群的 sys 租户,执行以下命令查看配置:

登录成功后,查询系统变量确认回收站状态:

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

看到 OFF 了吗?这表示回收站尚未开启。接下来,需要在租户级别全局启用该功能:

set global recyclebin = on;","id":"FIRmz"}">

需要注意的是,global 设置生效后,当前会话并不会立即感知到变化。你必须退出当前会话并重新登录,新的配置才会真正加载。重新登录后再次确认回收站状态:

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

如果仅需在当前会话临时开启,也可以单独设置 @@recyclebin 参数。不过在生产环境中,全局开启是更稳妥、更推荐的选择。

模拟删除操作与快速恢复

回收站开启后,我们来模拟一次意外删除场景。首先创建一个测试用的租户 mytenant02,然后直接将其删除:

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"}">

此时,被删除的数据实际上已经进入了回收站。查看回收站中的内容:

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"}">

可以看到,被删除的租户以特殊标识名 __recycle_$_1_1744 形式存在。恢复操作非常简单,直接使用 flashback 命令即可还原为原始名称:

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

恢复完成后,再次查询回收站和系统视图,确认数据已经完整恢复:

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"}">

回收站功能不仅限于租户

回收站这一机制并不仅限于租户级别,对于表、索引等数据库对象同样适用。下面是一个具体操作流程,切换到用户租户 mysqltenant,确认回收站已开启,然后删除一张表进行演示:

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"}">

从租户到表,回收站提供了一套统一的数据安全兜底方案。深入理解这一机制后,日常运维将更有保障,遇到误操作也能从容应对,确保业务连续性与数据完整性。

来源:https://developer.aliyun.com/article/1746159
上一篇云原生CAD插件:网页CAD图纸保存与数据持久化方法 下一篇GEO岗位JD拆解:20份数据揭示AI搜索优化师能力模型
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Claude Code官方教你Loop工程附6大省token技巧
AI教程 · 2026-07-08

Claude Code官方教你Loop工程附6大省token技巧

之前写过一篇《Loop Engineering 的保姆级教程》,从概念到多工具实战,比较全面地讲了循环工程的玩法。这两天 Claude Code 官方团队下场,发了一篇博客叫「Getting started with loops」,系统地整理了他们团队内部对「循环」的定义和分类。 这篇博客的含金量十

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价
AI教程 · 2026-07-08

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价

阿里云2核4G这个配置,可以说是个人站长和中小企业用户最常关注的“爆款”了。不过它的价格可不是一个固定的数字,而是跟实例规格、带宽、云盘类型、地域等等因素紧密相关。比如目前轻量应用服务器2核4G给到峰值200M带宽、50G ESSD云盘,抢购价能做到9 9元1个月或者199元1年。通用算力型u1实例

阿里巴巴研发效能实践日:敏捷精益项目管理报名
AI教程 · 2026-07-08

阿里巴巴研发效能实践日:敏捷精益项目管理报名

研发效能提升领域又有重磅消息了。阿里巴巴研发效能实践日——由阿里研发效能部主办的线下沙龙品牌,这次携手全球领先的项目管理协会PMI,共同聚焦“敏捷精益项目管理”这一核心主题。听起来就干货满满?别急,活动精心安排了4大主题演讲,旨在帮助参会者在思维层面实现突破,并且回去就能直接落地实践。更关键的是,参

RFID资产管理系统:企业资产数字化高效管控方案
AI教程 · 2026-07-08

RFID资产管理系统:企业资产数字化高效管控方案

数字化转型走到今天,传统人工管资产那套老办法——效率低、差错多、资产一挪窝就成“失踪人口”——已经越来越扛不住了。从仓库、车间到办公室,但凡资产流转量大、品类多的企业,都急需一套能实时盯、自动盘的方案。结合多行业的落地经验来看,RFID资产管理系统之所以能成为主流选择,核心在于它用射频技术把资产全生

智能体工作流知识沉淀:从一次修复到长期记忆
AI教程 · 2026-07-08

智能体工作流知识沉淀:从一次修复到长期记忆

好的,作为一位资深的技术专家和知识管理实践者,我将为你重新讲述这篇文章的核心内容,让这些观点和案例听起来更像是一次真诚的技术分享,而不是一份AI生成的报告。 在传统软件工程里,我们反复念叨“代码复用”,但到了AI Agent参与的工程时代,真正能产生复利的东西变了——从“代码复用”悄然转向了“知识复