kingbase-存储结构
https://www.hyouit.com?aff=418
1、物理存储结构
KingbaseES 数据库实例管理的所有数据在物理上都以操作系统文件的方式存放在磁盘上。
一般情况下,数据库实例所使用的配置和数据文件都被一起存储在名为 data的目录下。
查看 data 目录下文件
$ ls
base initdb.conf kingbase.opts sys_aud sys_csnlog sys_ident.conf sys_multixact sys_serial sys_stat_tmp SYS_VERSION
current_logfiles kingbase.auto.conf kingbase.pid sys_bulkload sys_dynshmem sys_log sys_notify sys_snapshots sys_tblspc sys_wal
global kingbase.conf out.html sys_commit_ts sys_hba.conf sys_logical sys_replslot sys_stat sys_twophase sys_xact
- base:包含每个数据库对应的子目录,记录每个数据库内对象
的持久化数据或临时数据。子目录的名字为该数据库在 sys_database 里的 OID 。
kingbase 中 OID 和数据库对应信息
# select oid,datname from sys_database;
oid | datname
-------+-----------------------
12135 | test
12136 | security
1 | template1
12134 | template0
操作系统文件数据库子目录
$ ls
1 12134 12135 12136 syssql_tmp
在 KingbaseES 数据库中,数据文件被组织成一个个页面(Page),页面大小为 8k。对数据文件的 I/O 操作都是以页面为单位。
在数据库目录下,每个表和索引都存储在独立的文件里。
- 普通关系,这些文件以表或索引的 filenode 号命名,它
可以在表 sys_class 中 relfilenode 字段看到。
select relname,relfilenode from sys_class;
- 临时关系,文件名的形式为 tBBB_FFF,其中 BBB 是创建该文件
的后台会话的后台 ID,FFF 是文件节点号。对于所有情况下,每个表和索引,在其主文件(或者说主分支)之外,
都有一个空闲空间映射分支,它存储关系中可用空闲空间的信息。空闲空间映射存储在一个文件中,该文件以节点号
加上后缀 _fsm 命名。此外,每个表还有一个可见性映射分支,存储在一个后缀为 _vm 的文件中,它用于跟踪哪些
页面已知含有非死亡元组。不被日志记录的表和索引还有第三个分支,即初始化分支,它存储在后缀为 _init 的分支中。
在表或者索引超过 1GB 之后,它就被划分成 1G 大小的段。第一个段的文件名和文件节点相同;随后的段被命
名为 filenode.1、filenode.2 等等。这样的安排避免了在某些有文件大小限制的平台上的问题(实际上,1GB 只是默认
的段尺寸。段尺寸可以在编译 KingbaseES 时使用配置选项--with-segsize 进行调整)。
KingbaseES 服务器使用的控制信息记录在 data 目录及子目录下的控制文件中。
日志文件记录数据库的历史操作信息, 包含恢复数据库中的所有事务所需的信息。在 KingbaseES 中,日志文件主要有 WAL 日志、事务日志和在线日志三类。
KingbaseES 主服务器的配置主要通过修改配置文件 kingbase.conf 完成。由 ALTER SYSTEM 修改的配置参数
会被数据库服务器自动记录在 kingbase.auto.conf 中。
配置文件 sys_hba.conf 和 sys_ident.conf 主要用于控制客户端认证。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)