sys租户下开启了回收站却没有看到对象

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】使用sys租户的root用户登陆,SET GLOBAL recyclebin = on;开启回收站后,再使用sys租户或业务租户的root用户登陆navicat删除一个业务库的表,发现回收站里面仍然没有任何对象,这跟客户端工具有关吗?

可以试下直接连接数据库删除对象,查看回收站有没有

我试了用obclient连接删除的还是没有

看下

show variables like 'recyclebin';


这个sys租户show是显示ON的,但是我刚才在业务租户show是OFF的,我是在sys租户开启的,他不是针对所有租户的吗

set global 设置完成后需要退出会话 重新进入。
或者你重启下navicat工具再试试。

OB 不建议在 sys 租户里建库和建表,这是常见错误。虽然 OB 技术上没有禁止这个。
所以,sys租户里 “回收站”也没什么用,变量保持默认值不要改,以免引起 sys 租户自身使用异常。

下面是错误的用法示例:

[root@server061 ~]# mysql -h10.0.0.62 -P2883 -uroot@sys#obdemo -paaAA11__ -c
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2176319
Server version: 5.6.25 OceanBase 3.2.4.5 (r105060012023121115-a65f383641e9a038308ececd6bd971f491ef09e2) (Built Dec 11 2023 16:07:24)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

(root@10.0.0.62:2883) [(none)]> show global variables like '%recyclebin%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin    | OFF   |
+---------------+-------+
1 row in set (0.02 sec)

(root@10.0.0.62:2883) [(none)]> set session recyclebin=on;
Query OK, 0 rows affected (0.00 sec)

(root@10.0.0.62:2883) [(none)]> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
(root@10.0.0.62:2883) [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| AA             |
| CD             |
| TESTLOCK       |
+----------------+
3 rows in set (0.00 sec)

(root@10.0.0.62:2883) [test]> drop table aa;
Query OK, 0 rows affected (0.11 sec)

(root@10.0.0.62:2883) [test]> show recyclebin;
+-----------------------------------------+---------------+-------+----------------------------+
| OBJECT_NAME                             | ORIGINAL_NAME | TYPE  | CREATETIME                 |
+-----------------------------------------+---------------+-------+----------------------------+
| __recycle_$_1680747945_1705472794497536 | AA            | TABLE | 2024-01-17 14:26:34.498745 |
+-----------------------------------------+---------------+-------+----------------------------+
1 row in set (0.02 sec)

(root@10.0.0.62:2883) [test]> purge recyclebin;
Query OK, 0 rows affected (0.08 sec)

(root@10.0.0.62:2883) [test]> show recyclebin;
Empty set (0.01 sec)

1 个赞

SYS 租户兼容的是 MySQL,variable 的修改 跟 MySQL 一样。如果是 set global 修改,只对后续新的会话生效,当前会话是不生效的。如果是 set session 方式修改,当前会话会生效,但是新的会话不会生效。

另外,租户 variable的修改最大范围也只是影响当前租户,不会影响其他租户。 variable 跟 parameter 不同。详情参考: 从ORACLE/MySQL到OceanBase:参数或变量 (qq.com)

1 个赞