首批通过分布式安全可靠测评,为关键业务系统打造
MODULE DATA
更新时间:2026-04-15 17:16:59
描述
MODULE DATA 语句有以下两种功能:
ALTER SYSTEM LOAD MODULE DATA ...:该语句用于向某个特定租户导入指定功能。ALTER SYSTEM CHECK MODULE DATA ...:该语句用于检查某个特定租户的指定功能是否已导入。
说明
对于 OceanBase 数据库 V4.2.5 版本,从 V4.2.5 BP2 版本开始支持 MODULE DATA 语句。
使用限制及注意事项
- 该语句仅支持在
sys(系统)租户中执行。 - 当前版本仅支持向 MySQL 模式租户导入
REDIS模块功能。 - 当前版本仅支持检查(
CHECK MODULE DATA)导入的REDIS模块功能。
权限要求
执行该语句的用户需要拥有 ALTER SYSTEM 权限。有关 OceanBase 数据库权限的详细介绍,参见 MySQL 模式下的权限分类。
语法
ALTER SYSTEM {LOAD | CHECK} MODULE DATA
MODULE = module_value
TENANT = tenant_name
[INFILE = file_path];
module_value:
REDIS
| GIS
| TIMEZONE
参数说明
| 参数 | 描述 |
|---|---|
| LOAD | CHECK | 用于指定是导入还是检查,具体如下:
|
| tenant_name | 指定待操作的租户名称。 |
| module_value | 用于指定待操作的功能,详细介绍可参见下文 module_value。 |
| file_path | 用于指定待导入的 SQL 文件路径。
注意
|
module_value
REDIS:表示操作REDIS模块功能。GIS:表示操作GIS模块功能。TIMEZONE:表示操作TIMEZONE模块功能。
示例
LOAD MODULE DATA 示例
向租户
mysql001导入REDIS模块功能。目前REDIS模块功能不支持使用INFILE路径,所以会报错。ALTER SYSTEM LOAD MODULE DATA MODULE = REDIS TENANT = mysql001 INFILE = '/home/admin/test.sql';返回结果如下:
ERROR 4025 (HY000): loading redis module does not need to specify infile向租户
mysql001导入REDIS模块功能。ALTER SYSTEM LOAD MODULE DATA MODULE = REDIS TENANT = mysql001;返回结果如下:
Query OK, 0 rows affected向租户
mysql001导入GIS模块功能, 其中INFILE参数是可以省略的,缺省值为etc/, 相应文件在部署目录的etc目录下。ALTER SYSTEM LOAD MODULE DATA MODULE = GIS TENANT = mysql001 INFILE = 'etc/';返回结果如下:
Query OK, 0 rows affected向租户
mysql001导入TIMEZONE模块功能, 其中INFILE参数是可以省略的,缺省值为etc/, 相应文件在部署目录的etc目录下。ALTER SYSTEM LOAD MODULE DATA MODULE = TIMEZONE TENANT = mysql001 INFILE = 'etc/';返回结果如下:
Query OK, 0 rows affected
CHECK MODULE DATA 示例
注意
当前版本仅支持检查(CHECK MODULE DATA)导入的 REDIS 模块功能。
未向租户导入功能时,执行
CHECK MODULE DATA语句将会报错。检查租户mysql002导入REDIS模块功能情况。ALTER SYSTEM CHECK MODULE DATA MODULE = REDIS TENANT = mysql002;返回结果如下:
ERROR 4025 (HY000): redis info is not complete,please retry loading先向租户导入功能后,再检查导入功能情况。
向租户
mysql002导入REDIS模块功能。ALTER SYSTEM LOAD MODULE DATA MODULE = REDIS TENANT = 'mysql002';返回结果如下:
Query OK, 0 rows affected检查租户
mysql002导入REDIS模块功能情况。ALTER SYSTEM CHECK MODULE DATA MODULE = REDIS TENANT = mysql002;返回结果如下:
Query OK, 0 rows affected