【赵渝强老师】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;
相关文章
|
8月前
|
存储 关系型数据库 数据库
【赵渝强老师】国产金仓数据库的体系架构
金仓数据库(KingbaseES)是基于PostgreSQL开发的国产关系型数据库,具有自主知识产权。其体系结构涵盖逻辑存储、物理存储、进程与内存管理,支持高可靠性与性能优化,广泛应用于关键信息基础设施领域。
1260 1
|
存储 算法 调度
分页储存管理.分段储存管理.虚拟储存管理
分页储存管理和分段储存管理是操作系统中常用的两种内存管理方式。 1. 分页储存管理: - 基本原理:将物理内存和逻辑内存划分为固定大小的页面和页面框,使得逻辑地址空间和物理地址空间可以对应起来。进程的逻辑地址空间被划分为多个固定大小的页面,每个页面与一个物理内存页面框对应。通过页表将逻辑地址映射到物理地址,实现地址转换。 - 优点:简单、灵活,能够提供较大的逻辑地址空间,适用于多道程序设计和虚拟内存管理。 - 缺点:存在内部碎片,会造成一定的存储空间浪费。 2. 分段储存管理: - 基本原理:将进程的逻辑地址空间划分为若干个逻辑段,每个逻辑段代表一个逻辑单位,如代码
848 0
|
1月前
|
Oracle 关系型数据库 数据处理
【赵渝强老师】使用Oracle可传输的表空间迁移数据
Oracle可传输表空间通过物理拷贝数据文件+导出/导入元数据,实现高效跨库迁移。相比传统exp/imp,大幅提速,但要求表空间自包含,且源目标端字符集、OS、版本须一致。
121 1
|
2月前
|
存储 SQL 关系型数据库
【赵渝强老师】MySQL Cluster
MySQL NDB Cluster是高可用、高性能的分布式数据库系统,基于NDB存储引擎,支持自动分区、实时处理、多地域复制与ACID事务。适用于电信、金融等关键业务场景,具备动态扩展与故障自愈能力。(239字)
200 1
|
3月前
|
SQL 关系型数据库 MySQL
【MySQL百日打怪升级第20天】行锁 vs 表锁 —— InnoDB 什么时候锁行、什么时候锁表?
【第20天】MySQL锁机制精讲!深入解析InnoDB行锁与表锁的本质区别:行锁依赖索引,无索引则全表扫描→实际锁全表;详解Record/Gap/Next-Key三种行锁、意向锁作用及锁诊断实战(PS视图+INNODB STATUS)。避坑指南:UPDATE/DELETE务必走索引!
259 3
|
3月前
|
SQL 关系型数据库 MySQL
【MySQL百日打怪升级第14天】 LIMIT 分页的性能优化:深分页到底慢在哪?
本文深入剖析MySQL深分页(如`LIMIT 100000,20`)性能瓶颈:本质是OFFSET导致全量扫描与丢弃,页码越深,扫描行数线性增长。详解三种实战优化方案——游标分页(高效稳定,需有序唯一字段)、延迟关联(兼容OFFSET,索引覆盖减回表)、范围分页(极简但场景受限),并附EXPLAIN对比与避坑指南。(239字)
323 6
|
2月前
|
存储 人工智能 前端开发
AI 生成短剧软件系统 完整开发落地步骤(从零到上线)
本方案提供短剧AI生成系统最简商用版架构:用户输入剧情→AI写剧本→自动分镜→文生图/图生视频→AI配音字幕→智能剪辑→导出发布。采用FastAPI+Vue3,对接通义、即梦、可灵等第三方API,无需自研模型,小团队3人即可快速落地,支持9:16竖屏批量生产与会员变现。
|
3月前
|
JSON 关系型数据库 MySQL
MySQL 8.0这几个功能太实用了!5分钟帮你省下70%的代码量
MySQL 8.0重磅升级,实操利器全面登场:CTE简化嵌套与递归查询,JSON_TABLE直解析JSON为表,窗口函数赋能高效分析,不可见索引提供删除“后悔药”,强化密码策略保障企业安全——性能、安全、开发效率三重跃升。
|
3月前
|
SQL 安全 关系型数据库
【MySQL百日打怪升级第16天】UPDATE 与 DELETE 的最佳实践:锁升级到底是怎么发生的?
本文详解MySQL中UPDATE/DELETE的锁机制陷阱:WHERE无索引→全表扫描→行锁累积→等效表锁,尤其在RR隔离级下触发Gap Lock加剧阻塞。分享游标分批、索引优化、pt-archiver等安全实践,助你避开线上卡顿雷区。
276 0
|
3月前
|
SQL 存储 数据采集
【MySQL百日打怪升级第15天】INSERT 批量插入的最佳实践:别再逐条 INSERT 了!
MySQL批量插入最佳实践:告别低效逐条INSERT!本文详解为何单次提交1万行比1万次提交快百倍,涵盖批量语法、合理批次(500–1000行)、LOAD DATA极速导入、冲突处理(IGNORE/ON DUPLICATE)及避坑要点,助你秒级完成大数据写入。(239字)
441 0