【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】V4.3.4
【问题描述】CREATE TABLESPACE tbs001 语句报语句不支持,但是在该版本支持语句(MYSQL租户)是写的有这个语句,请帮忙看下
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】V4.3.4
【问题描述】CREATE TABLESPACE tbs001 语句报语句不支持,但是在该版本支持语句(MYSQL租户)是写的有这个语句,请帮忙看下
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
根据您提供的信息,您在使用 OceanBase V4.3.4 版本时遇到了 CREATE TABLESPACE
语句不被支持的问题。虽然您提到在该版本的文档中指出 MySQL 租户支持 CREATE TABLESPACE
语句,但根据目前检索到的文档片段,没有直接提及 CREATE TABLESPACE
语句的支持情况。
建议如下:
CREATE TABLESPACE
语句时收到了具体的错误码或错误信息,请提供这些信息,以便进一步排查问题。基于内在知识的可能解答:
在某些版本的 OceanBase 中,CREATE TABLESPACE
语句可能仅在 Oracle 租户中支持,而在 MySQL 租户中不支持。您可以尝试以下替代方案:
希望这些建议对您有所帮助。如果有更多具体信息或错误码,请提供更多细节,以便进一步诊断问题。
详情请参考:
您是在哪儿见到的这个语法,链接发一下
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001577295
里面有CREATE TABLESPACE 描述
感谢您提供的链接。根据您提供的链接,确实提到了 CREATE TABLESPACE
语句在 OceanBase V4.3.4 版本中是支持的。然而,您在实际操作中遇到了问题。为了更好地帮助您解决这个问题,我们可以按照以下步骤进行排查:
确保您当前操作的租户是 MySQL 租户。您可以通过以下 SQL 语句来确认租户类型:
SHOW VARIABLES LIKE 'ob_compatibility_mode';
如果返回值为 MySQL
,则表示您当前在 MySQL 租户中。
请确保您的 CREATE TABLESPACE
语句语法正确。以下是创建表空间的基本语法:
CREATE TABLESPACE tbs001 DATAFILE '/path/to/datafile' SIZE 10M;
请确保路径和大小参数符合您的需求。
如果您执行 CREATE TABLESPACE
语句时收到了具体的错误码或错误信息,请提供这些信息,以便进一步排查问题。例如:
CREATE TABLESPACE tbs001 DATAFILE '/data/tbs001.dbf' SIZE 10M;
如果执行上述语句失败,请提供完整的错误信息。
确保当前用户具备 CREATE TABLESPACE
权限。您可以使用以下 SQL 语句来检查当前用户的权限:
SHOW GRANTS FOR current_user;
如果当前用户没有 CREATE TABLESPACE
权限,可以使用以下 SQL 语句授予权限:
GRANT CREATE TABLESPACE TO your_username;
如果以上步骤仍无法解决问题,建议联系 OceanBase 的官方技术支持团队,他们可以提供更详细的帮助和支持。
假设您已经确认当前租户是 MySQL 租户,并且当前用户具备 CREATE TABLESPACE
权限,您可以尝试以下步骤:
确认租户类型:
SHOW VARIABLES LIKE 'ob_compatibility_mode';
检查权限:
SHOW GRANTS FOR current_user;
创建表空间:
CREATE TABLESPACE tbs001 DATAFILE '/data/tbs001.dbf' SIZE 10M;
如果在执行上述步骤时仍然遇到问题,请提供具体的错误信息,以便进一步诊断。
希望这些建议对您有所帮助。如果有更多具体信息或错误码,请提供更多细节,以便进一步诊断问题。
具体信息可参考以下文档:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
应该是企业版支持的
create tablespace
原本为 oracle 和 pg 表空间语法,ob(oracle)兼容 oracle后实现了这一语法,但是不需要指定数据文件(因为ob只有一个数据文件,表空间管理的原始意义在 ob 里不存在)。ob 现在支持这一语法只是为了 表数据加密用。v3 版本只在 oracle 企业版的 oracle 租户支持利用表空间加密。v4版本 企业版 mysql 租户也支持加密这个功能。
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3221587217
Server version: 5.7.25 OceanBase 3.2.4.4 (r104050012023073116-bd68af492c0bf66ed520dfccb6d9f29fce86c1db) (Built Jul 31 2023 16:15:09)
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status;
--------------
mysql Ver 8.0.37 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 3221587217
Current database:
Current user: root@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.25 OceanBase 3.2.4.4 (r104050012023073116-bd68af492c0bf66ed520dfccb6d9f29fce86c1db) (Built Jul 31 2023 16:15:09)
Protocol version: 10
Connection: 127.1 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 2881
Binary data as: Hexadecimal
Active --------------
mysql> create tablespace tbstest;
Query OK, 0 rows affected (0.43 sec)
root@oceanbase>status;
--------------
obclient Ver Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 3221645105
Current database: oceanbase
Current user: root@10.0.0.65
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: OceanBase 4.3.3.1 (r101030022024120210-07f0ac36d201fedd69102a42d912ed8017ccca64) (Built Dec 2 2024 10:21:05)
Protocol version: 10
Connection: 10.0.0.65 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 2881
Protocol: Compressed
Active --------------
root@oceanbase>ALTER SYSTEM SET tde_method = 'internal';
Query OK, 0 rows affected (0.023 sec)
root@oceanbase>ALTER INSTANCE ROTATE INNODB MASTER KEY;
Query OK, 0 rows affected (0.196 sec)
root@oceanbase>CREATE TABLESPACE tbstest ENCRYPTION = 'SM4-GCM';
Query OK, 0 rows affected (0.057 sec)
如楼上庆涛老师说的,该功能是企业版功能,mysql模式本主要用于加密这个功能
这个语句还要企业版啊