【赵渝强老师】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;
相关文章
|
9月前
|
存储 关系型数据库 数据库
【赵渝强老师】国产金仓数据库的体系架构
金仓数据库(KingbaseES)是基于PostgreSQL开发的国产关系型数据库,具有自主知识产权。其体系结构涵盖逻辑存储、物理存储、进程与内存管理,支持高可靠性与性能优化,广泛应用于关键信息基础设施领域。
1306 1
|
2月前
|
Oracle 关系型数据库 数据处理
【赵渝强老师】使用Oracle可传输的表空间迁移数据
Oracle可传输表空间通过物理拷贝数据文件+导出/导入元数据,实现高效跨库迁移。相比传统exp/imp,大幅提速,但要求表空间自包含,且源目标端字符集、OS、版本须一致。
152 1
|
3月前
|
存储 SQL 关系型数据库
【赵渝强老师】MySQL Cluster
MySQL NDB Cluster是高可用、高性能的分布式数据库系统,基于NDB存储引擎,支持自动分区、实时处理、多地域复制与ACID事务。适用于电信、金融等关键业务场景,具备动态扩展与故障自愈能力。(239字)
222 1
|
4月前
|
SQL 关系型数据库 MySQL
MySQL慢查询诊断实战:从10秒到0.1秒,我的5步排障法
数据库小学妹分享慢查询优化实战:从10秒降至0.08秒!详解「发现→收集→分析→优化→验证」5步排障法,覆盖慢日志配置、EXPLAIN进阶、索引失效场景、JOIN与分页优化等核心技巧,附真实案例与速查表。
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL百日打怪升级第20天】行锁 vs 表锁 —— InnoDB 什么时候锁行、什么时候锁表?
【第20天】MySQL锁机制精讲!深入解析InnoDB行锁与表锁的本质区别:行锁依赖索引,无索引则全表扫描→实际锁全表;详解Record/Gap/Next-Key三种行锁、意向锁作用及锁诊断实战(PS视图+INNODB STATUS)。避坑指南:UPDATE/DELETE务必走索引!
288 3
|
4月前
|
SQL 关系型数据库 MySQL
【MySQL百日打怪升级第14天】 LIMIT 分页的性能优化:深分页到底慢在哪?
本文深入剖析MySQL深分页(如`LIMIT 100000,20`)性能瓶颈:本质是OFFSET导致全量扫描与丢弃,页码越深,扫描行数线性增长。详解三种实战优化方案——游标分页(高效稳定,需有序唯一字段)、延迟关联(兼容OFFSET,索引覆盖减回表)、范围分页(极简但场景受限),并附EXPLAIN对比与避坑指南。(239字)
407 6
|
4月前
|
SQL 算法 关系型数据库
【MySQL百日打怪升级第10天】JOIN的底层原理与优化:NLJ、Hash Join 与 Merge Join
本文系统解析MySQL三大JOIN算法:NLJ(含Simple/Index/Block变体)、8.0.18引入的Hash Join(O(N+M)复杂度,专治无索引大表连接),以及面试常考但MySQL原生不支持的Sort-Merge Join,附实战EXPLAIN识别与优化指南。(239字)
399 5
|
4月前
|
SQL 关系型数据库 MySQL
MySQL主从复制实战:从原理到读写分离,新手避坑全指南
数据库小学妹带你轻松入门主从复制!✅基于binlog实现主库写、从库读,支撑读写分离与高可用;🛡️保障数据安全(灾备)、提升并发能力;🔧详解三种复制模式、搭建步骤、延迟优化及避坑指南。运维进阶必备!
|
4月前
|
JSON 关系型数据库 MySQL
MySQL 8.0这几个功能太实用了!5分钟帮你省下70%的代码量
MySQL 8.0重磅升级,实操利器全面登场:CTE简化嵌套与递归查询,JSON_TABLE直解析JSON为表,窗口函数赋能高效分析,不可见索引提供删除“后悔药”,强化密码策略保障企业安全——性能、安全、开发效率三重跃升。
|
4月前
|
SQL 缓存 关系型数据库
【MySQL百日打怪升级第18天】事务隔离级别详解:RC、RR、Serializable 到底怎么选?
本系列第18天详解MySQL事务隔离级别:RC(读已提交)、RR(可重复读,默认)、Serializable。厘清脏读、不可重复读、幻读三大问题,剖析InnoDB下RR如何借MVCC+Gap Lock基本防幻读,并给出RC与RR选型建议及真实避坑指南。
479 0