GBase 8s
运维管理
文章

GL_USEGLU参数不匹配或可能出现的错误(103 ISAM error)与解决方法

发表于2023-10-30 11:24:04723次浏览2个评论

GL_USEGLU 设置为 1 的情况下创建的数据库必须在 GL_USEGLU 设置为 1 的情况下进行访问。

同理GL_USEGLU 设置为 0 的情况下创建的数据库必须在 GL_USEGLU 设置为 0 的情况下进行访问。

否则,可能会出现一下报错信息,如下所示:

[gbasedbt@peixun-0054 ~]$ dbaccess mydb1 -

  211: Cannot read system catalog (sysprocedures).

  103: ISAM error:  illegal key descriptor (too many parts or too long).
[gbasedbt@shipeiarm-0001 ~]$ dbaccess mydb1 -
Your evaluation license will expire on 2024-08-28 00:00:00

数据库已被选用。

> select * from systables;

  211: 不能读取系统目录表 (systables)。

  103: ISAM 错误:键描述符非法(部分太多或键太长)。
错误在 1 行
第 23 字符

解决方法:

先查看sysmaster 库中 sysdatabases 表的 is_nls 参数,如:

[gbasedbt@peixun-0054 ~]$ dbaccess sysmaster -

Database selected.

> select * from sysdatabases;

.
.
.
name            mydb1
partnum         9437382
owner           gbasedbt
created         2023 10月 18日
is_logging      0
is_buff_log     0
is_ansi         0
is_nls          1
is_case_insens  0
flags           -12272

得知mydb1库的nls参数是1,我们去查一下环境变量

[gbasedbt@peixun-0054 ~]$ printenv GL_USEGLU
0

因为GL_USEGLU环境变量不匹配,所以会报错如图:

找到问题原因,修改环境变量即可,将profile文件中的GL_USEGLU改成和数据库nls一致=1(nls是0,那么改成0即可),如下:

[gbasedbt@peixun-0054 ~]$ cat profile.gbase01 
export GBASEDBTSERVER=gbase01
export GBASEDBTDIR=/opt/gbase
export GBASEDBTSQLHOSTS=/opt/gbase/etc/sqlhosts.gbase01
export ONCONFIG=onconfig.gbase01
export PATH=/opt/gbase/bin:$PATH
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
export GL_USEGLU=1

之后source 环境变量,并重启数据库就可以访问了!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论

登录后才可以发表评论
用户头像
路路路发表于 9个月前
用户头像
levvel发表于 6个月前
太实用了!