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

简介: OceanBase数据库提供回收站功能,支持租户及表等对象的误删恢复。本文详解如何通过`flashback tenant`语句快速恢复已删除租户,并涵盖回收站开启、查看、验证全流程,附操作命令与视频讲解。(239字)

b459.png

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


下面是具体的操作步骤:

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

obclient -h192.168.79.11 -P2881 -uroot -p'Welcome_1' -A

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

ob> show variables like 'recyclebin';
# 输出信息如下:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin    | OFF   |
+---------------+-------+
1 row in set (0.012 sec)

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

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

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

ob> show variables like 'recyclebin';
# 输出信息如下:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin    | ON    |
+---------------+-------+
1 row in set (0.005 sec)

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

ob> set @@recyclebin = on;
ob> set @@recyclebin = off;

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

ob> show recyclebin;
Empty set (0.016 sec)

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

ob> create tenant if not exists mytenant02 
           primary_zone='zone1', 
           resource_pool_list=('rp1')
           set ob_tcp_invited_nodes='%';
ob> drop tenant mytenant02;

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

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

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

ob> flashback tenant mytenant02 to before drop;

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

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

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

obclient -h192.168.79.12 -P2881 -uroot@mysqltenant -pWelcome_1 -A
# 确认回收站是否开启
ob> show variables like '%recyclebin%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin    | ON    |
+---------------+-------+
1 row in set (0.002 sec)
# 确定表的信息
ob> use demo;
ob> show tables;
+----------------+
| Tables_in_demo |
+----------------+
| table01        |
+----------------+
# 删除一张表
ob> drop table table01;
# 查看回收站
ob> show recyclebin;
+--------------------------------+---------------+-------+----------------------------+
| OBJECT_NAME                    | ORIGINAL_NAME | TYPE  | CREATETIME                 |
+--------------------------------+---------------+-------+----------------------------+
| __recycle_$_1_1745401735728152 | table01       | TABLE | 2025-04-23 17:48:55.748140 |
+--------------------------------+---------------+-------+----------------------------+
1 row in set (0.017 sec)
# 执行闪回操作
ob> flashback table table01 to before drop;
相关文章
|
10月前
|
存储 关系型数据库 数据库
【赵渝强老师】国产金仓数据库的体系架构
金仓数据库(KingbaseES)是基于PostgreSQL开发的国产关系型数据库,具有自主知识产权。其体系结构涵盖逻辑存储、物理存储、进程与内存管理,支持高可靠性与性能优化,广泛应用于关键信息基础设施领域。
1430 1
|
3月前
|
Oracle 关系型数据库 数据处理
【赵渝强老师】使用Oracle可传输的表空间迁移数据
Oracle可传输表空间通过物理拷贝数据文件+导出/导入元数据,实现高效跨库迁移。相比传统exp/imp,大幅提速,但要求表空间自包含,且源目标端字符集、OS、版本须一致。
280 1
|
4月前
|
存储 SQL 关系型数据库
【赵渝强老师】MySQL Cluster
MySQL NDB Cluster是高可用、高性能的分布式数据库系统,基于NDB存储引擎,支持自动分区、实时处理、多地域复制与ACID事务。适用于电信、金融等关键业务场景,具备动态扩展与故障自愈能力。(239字)
285 1
|
4月前
|
SQL Oracle 关系型数据库
MySQL迁移到国产数据库实战指南:以金仓为例
本文详解MySQL迁至国产金仓KingbaseES的实战经验:涵盖兼容性评估、官方工具(KDMS/KDTS/KFS)使用、高频语法差异(自增主键、字符串处理、日期函数、Upsert等)、数据迁移技巧及性能调优要点,助你少踩坑、高效落地。
793 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL慢查询诊断实战:从10秒到0.1秒,我的5步排障法
数据库小学妹分享慢查询优化实战:从10秒降至0.08秒!详解「发现→收集→分析→优化→验证」5步排障法,覆盖慢日志配置、EXPLAIN进阶、索引失效场景、JOIN与分页优化等核心技巧,附真实案例与速查表。
|
5月前
|
SQL 关系型数据库 MySQL
【MySQL百日打怪升级第20天】行锁 vs 表锁 —— InnoDB 什么时候锁行、什么时候锁表?
【第20天】MySQL锁机制精讲!深入解析InnoDB行锁与表锁的本质区别:行锁依赖索引,无索引则全表扫描→实际锁全表;详解Record/Gap/Next-Key三种行锁、意向锁作用及锁诊断实战(PS视图+INNODB STATUS)。避坑指南:UPDATE/DELETE务必走索引!
378 3
|
6月前
|
SQL 关系型数据库 MySQL
EXPLAIN 执行计划:一眼看穿你的SQL慢在哪
数据库小学妹带你轻松掌握SQL性能诊断!通过EXPLAIN查看执行计划,精准识别索引失效、全表扫描(ALL)、key为NULL等瓶颈。聚焦type、key、rows等6个关键字段,结合实战案例与避坑指南(如函数滥用、最左前缀破坏),让优化有的放矢。学完即用,告别盲目调优!
|
4月前
|
人工智能 NoSQL 关系型数据库
【MySQL百日打怪升级第22天】事务死锁的成因与避免 —— 死锁检测、锁等待超时
【MySQL死锁精讲】第22天干货:剖析死锁成因(循环加锁)、检测机制(等待图算法)、四大场景(转账/外键/Gap Lock等)及实战避坑方案——统一加锁顺序、缩短事务、合理选隔离级别,附AI诊断工具箱。
374 0
|
5月前
|
SQL 人工智能 关系型数据库
【MySQL百日打怪升级第19天】脏读、不可重复读、幻读 —— 遇到了怎么定位,怎么修?
本系列第19天聚焦MySQL事务隔离问题实战诊断:详解脏读、不可重复读、幻读的典型症状、精准定位方法(查隔离级别+观察读现象)及修复方案(调级别/加锁/重构),附AI生成并发复现脚本技巧与面试高频考点,助你从理论走向线上排障。
244 0
|
5月前
|
JSON 关系型数据库 MySQL
MySQL 8.0这几个功能太实用了!5分钟帮你省下70%的代码量
MySQL 8.0重磅升级,实操利器全面登场:CTE简化嵌套与递归查询,JSON_TABLE直解析JSON为表,窗口函数赋能高效分析,不可见索引提供删除“后悔药”,强化密码策略保障企业安全——性能、安全、开发效率三重跃升。