【赵渝强老师】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;
相关文章
|
3月前
|
关系型数据库 MySQL Java
【赵渝强老师】MySQL数据库的分库与分表
Mycat是一款开源分布式数据库中间件,支持MySQL等主流数据库,提供分库分表、读写分离、逻辑库/表抽象等功能。本文详解其核心概念(如分片表、ER表、全局序列号)、安装部署(JDK配置、服务启停)及实战配置(schema.xml/rule.xml),并演示基于三节点MySQL的分片数据路由与查询。
282 31
|
7月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL锁的类型
PostgreSQL通过表级锁和行级锁实现并发控制,结合MVCC机制保障数据一致性。锁模式多样,粒度精细,可有效避免事务冲突,提升并发性能。
362 0
【赵渝强老师】PostgreSQL锁的类型
|
9月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
438 0
|
6月前
|
SQL 存储 分布式计算
【赵渝强老师】基于Hudi的大数据湖仓一体架构
Apache Hudi(Hadoop Upserts Delete and Incremental)是开源的流式数据湖平台,支持事务、高效upsert/delete、增量处理、多引擎SQL读写(Spark/Flink/Trino等),自动管理小文件与压缩,兼容云存储,助力构建湖仓一体架构。
916 3
|
7月前
|
存储 关系型数据库 数据库
【赵渝强老师】国产金仓数据库的体系架构
金仓数据库(KingbaseES)是基于PostgreSQL开发的国产关系型数据库,具有自主知识产权。其体系结构涵盖逻辑存储、物理存储、进程与内存管理,支持高可靠性与性能优化,广泛应用于关键信息基础设施领域。
1154 1
|
8月前
|
数据采集 运维 DataWorks
【赵渝强老师】阿里云大数据集成开发平台DataWorks
DataWorks是阿里云一站式大数据开发治理平台,支持数据集成、开发、建模、分析、质量监控、服务化及迁移等全链路功能,兼容多种计算引擎,助力企业高效构建数据中台,实现数据资产化与价值挖掘。
689 6
|
8月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle数据库的PL/SQL编程语言
PL/SQL是Oracle对SQL的扩展,结合过程化编程特性,支持开发存储过程、函数和触发器。本文介绍其基本结构,并演示如何在SQL*Plus中编写“Hello World”程序,需启用serveroutput输出。也可使用Oracle SQL Developer更高效地开发调试PL/SQL应用。
241 3
|
7月前
|
存储 NoSQL 关系型数据库
【赵渝强老师】MongoDB的数据类型
本文介绍MongoDB中常用的数据类型,包括ObjectId、String、Boolean、Number、Array、Object、Date等,通过代码示例演示其用法与区别,帮助理解文档型数据库的数据存储机制。
326 0
|
9月前
|
数据采集 缓存 大数据
【赵渝强老师】大数据日志采集引擎Flume
Apache Flume 是一个分布式、可靠的数据采集系统,支持从多种数据源收集日志信息,并传输至指定目的地。其核心架构由Source、Channel、Sink三组件构成,通过Event封装数据,保障高效与可靠传输。
482 1
|
9月前
|
存储 缓存 关系型数据库
【赵渝强老师】PostgreSQL的内存结构
PostgreSQL内存结构分为本地内存与共享内存。本地内存包括work_mem、maintenance_work_mem和temp_buffers,供各会话独立使用;共享内存如shared_buffers、wal_buffers和effective_cache_size,则由所有进程共用,用于缓存数据、WAL日志及优化查询性能。
363 0