南大通用GBase 8a创建临时表报错 Can't create table (errno: 20)

报错信息

Query failed reason: Can't create table (errno: 20)

排查

查看操作系统错误号

,发现是 not a directory报错

OS error code20:Not a directory
操作系统错误代码20:不是一个目录

查看数据库目录

发现gnode/userdata/gbase/gctmpdb/meta 是一个文件,不是目录,导致如上报错。

查看时间戳, metadata和sys_tablespace目录不用,其中metadata是几周前的。

解决方案

删除metadata文件,创建metadata目录,记得用gbase操作系统用户。

分析

该环境为docker, 有可能外部存储故障,导致文件损坏。