KingbaseES数据库自动创建表空间目录的完整流程(不用再提前建文件夹了)

 更新时间:2026年05月15日 08:42:42   作者:xcLeigh  
KingbaseES数据库对象管理工具是一款基于JAVA开发的跨平台图形工具,用于管理KingbaseES数据库服务器,这篇文章主要介绍了KingbaseES数据库自动创建表空间目录的相关资料,不用再提前建文件夹了,需要的朋友可以参考下

平时在用金仓数据库 KingbaseES 的时候,很多人应该都碰到过这样的情况。就是去创建表空间的时候,必须要先在操作系统里把对应的目录建好。不然的话,直接执行创建表空间的命令,操作就会失败,还会报出错误信息。

这个问题其实挺影响使用体验的。以前的版本里,这个步骤是硬性要求。你想创建表空间,就得先手动去建目录,一步都不能少。很多时候就是因为忘了这一步,导致表空间创建不成功,还要回头排查原因,挺浪费时间的。

为了把这个麻烦的问题解决掉,KingbaseES 做了功能优化。现在创建表空间的时候,如果你指定的目录在系统里不存在,数据库会直接帮你自动创建出来。不用我们再手动提前操作,整个流程简化了很多,也更不容易出错。

一、自动创建表空间目录的使用规则

这个功能不是随便用都可以的,有几个固定的要求,大家用的时候要注意一下。

  1. 路径必须是绝对路径
    你在写 location 的时候,不能用相对路径,必须写完整的绝对路径。这样数据库才能准确找到位置,也能避免路径错乱的问题。

  2. 路径不能在 data 目录下面
    表空间的目录,不允许放在数据库的 data 目录里面。这是为了保证数据目录结构清晰,也能避免权限和管理上出现混乱。

  3. 路径位置不能有其他表空间
    同一个路径下面,不能已经存在别的表空间。不然会出现冲突,创建操作会直接失败。

  4. 必须是超级用户才能操作
    创建表空间本身就是高权限操作。不管是手动建目录,还是用自动创建的功能,都必须用超级用户来执行,普通用户没有这个权限。

  5. 已存在的目录权限要正确
    如果你指定的路径里,有一部分目录是已经存在的。那这些已存在的目录,归属权必须是 KingbaseES 对应的操作系统用户。不然数据库没有权限操作,自动创建也会失败。

二、核心参数:auto_createtblspcdir

能不能自动创建表空间目录,是由参数 auto_createtblspcdir 来控制的。这个参数默认是开启状态,也就是 on。

  • 参数设置为 on
    创建表空间时,如果目录不存在,数据库会自动创建。但前面说的权限要求还是要满足,已存在的目录必须是 KingbaseES 操作系统用户拥有。

  • 参数设置为 off
    这个时候就回到了以前的逻辑。你指定的目录必须提前手动建好,而且目录必须为空,归属权也要正确。如果目录不存在,执行创建命令就会直接报错。

不管参数是开还是关,有一点是不变的。目录都必须用绝对路径来指定,这是硬性要求。

三、几种常见场景的实际操作示例

下面给大家放几种常用的操作示例,都是可以直接复制测试的。

1. 目录已经存在的情况

先手动建好目录,再创建表空间。

\! mkdir -p test/test1/test2/mysp1
create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/mysp1';
drop tablespace mysp1;
\! rm -rf test

2. 目录只存在一部分的情况

只建前面几层目录,后面的让数据库自动补全。

\! mkdir -p test/test1
create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/test3/mysp1';
drop tablespace mysp1;
\! rm -rf test

3. 目录完全不存在的情况

全程不用手动建目录,数据库全部自动创建。

create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/test2/test3/test4/test5/test6/test7/mysp1';

4. 大小写混合目录 + 建表测试

目录名称大小写混写,创建表空间后,在里面建表插入数据,验证是否正常可用。

create tablespace mysp1 location '/home/zhangjing/dailybuild0904/bin/test/test1/TEst3';
create table cc(id int,name varchar(50)) tablespace mysp1;
insert into cc values(1,'xiaozhang'),(2,'xiaozhao'),(3,'xiaohong');
select * from cc;

执行后正常返回 3 行数据,就说明表空间和表都创建成功了。

四、云原生/容器场景下的延伸使用(2026 适用)

现在云原生和容器用得越来越多,很多人都是在 Kubernetes 环境里跑 KingbaseES。这个自动创建表空间目录的功能,在这类场景里同样能用。

  • 配合 PV/PVC 持久化存储
    在 K8s 里挂好 PV/PVC 之后,直接把表空间路径指向挂载点。数据库会自动在挂载目录里创建子目录,不用手动在容器里建目录,适配起来很方便。

  • 适配云存储/共享存储
    不管是 SSD 云盘、对象存储兼容接口,还是共享存储设备。只要挂载路径正确,数据库都能按规则自动创建目录,支持存储分层。热数据放 SSD,冷数据放 HDD,不用手动维护目录结构。

五、总结

KingbaseES 的自动创建表空间目录,本质就是把以前手动建目录的步骤交给数据库自动完成。降低了操作失误,也简化了部署流程。

使用的时候记住几点:路径必须绝对、不能在 data 目录、权限正确、超级用户执行,再配合 auto_createtblspcdir 参数控制开关。不管是传统物理机、虚拟机,还是现在的容器、云环境,都能稳定使用。

到此这篇关于KingbaseES数据库自动创建表空间目录的文章就介绍到这了,更多相关KES数据库自动创建表空间目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • sql注入教程之类型以及提交注入

    sql注入教程之类型以及提交注入

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,这篇文章主要给大家介绍了关于sql注入教程之类型以及提交注入的相关资料,需要的朋友可以参考下
    2021-07-07
  • 从零开始用DataGrip的安装及使用教程

    从零开始用DataGrip的安装及使用教程

    这篇文章主要介绍了从零开始用DataGrip的安装以及使用,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 数据设计之权限的实现

    数据设计之权限的实现

    这篇文章主要介绍了数据设计之权限的实现,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • SQL基础教程之行转列Pivot函数

    SQL基础教程之行转列Pivot函数

    这篇文章主要给大家介绍了关于SQL基础教程之行转列Pivot函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 关系型数据库的设计规则详解

    关系型数据库的设计规则详解

    大家好,本篇文章主要讲的是关系型数据库的设计规则详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • pentaho工具将数据库数据导入导出为Excel图文步骤

    pentaho工具将数据库数据导入导出为Excel图文步骤

    本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • sql left join 命令详解

    sql left join 命令详解

    左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
    2009-07-07
  • 简单聊聊SQL注入的原理以及一般步骤

    简单聊聊SQL注入的原理以及一般步骤

    所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,下面这篇文章主要给大家介绍了关于SQL注入的原理以及一般步骤的相关资料,需要的朋友可以参考下
    2022-02-02
  • 数据库的三级模式和两级映射介绍

    数据库的三级模式和两级映射介绍

    在这里大家一定要注意三级模式中的概念模式对应的是数据库设计的逻辑模型,而不是概念模型(E-R模型),一定不要弄混了
    2012-10-10
  • JDBC中resutset接口操作实例详解

    JDBC中resutset接口操作实例详解

    这篇文章主要介绍了JDBC中resutset接口操作实例详解,代码示例注释比较详细,需要的朋友可以参考下。
    2017-09-09

最新评论