赵渝强老师,国产金仓数据库的逻辑存储结构是怎样的?

摘要:金仓数据库的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相
金仓数据库的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在sys_database,sys_class表中。下图展示了KingBaseES数据库的逻辑存储结构。 点击这里查看视频讲解:【赵渝强老师】国产金仓数据库的逻辑存储结构 下面对金仓数据库中的各种数据库对象进行说明。 一、 数据库集群-Database Cluster 它也叫数据库集簇,是指由单个KingBaseES数据库服务器实例管理的所有数据库集合。组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用数据库的后台进程和内存结构。一个数据库集群可以包括:多个数据库、多个用户以及数据库中的所有对象。 在文件系统术语中,一个数据库集群是一个单一目录,该目录称之为数据目录或数据区域,所有数据都将被存储在该目录中。它没有默认的位置,其文件系统位置可以由-D选项或者环境变量KINGBASE_DATA指定,例如: [kingbase@kingbase Server]$ pwd /home/kingbase/kdb/Server [kingbase@kingbase Server]$ bin/sys_ctl -D /home/kingbase/kdb/kes_oracle_instance/ start 二、 数据库-Database 在金仓数据库中,数据库本身也是数据库对象。不同的数据库在逻辑上彼此分离,除数据库之外的其他数据库对象(例如:表、索引等等)都属于它们各自的数据库。通过下面的语句可以查看金仓数据库服务器中已存在的数据库。 (1)登录KingBaseES。 ksql -U system -d kingbase (2)查看KingBaseES中已有的数据库。 kingbase=# \l # 输出的信息如下: 数据库列表 名称 | 拥有者 | 字元编码 | 校对规则 | ...... -----------+--------+----------+-------------+-...... kingbase | system | UTF8 | zh_CN.UTF-8 | ...... scott | system | UTF8 | zh_CN.UTF-8 | ...... security | system | UTF8 | zh_CN.UTF-8 | ...... template0 | system | UTF8 | zh_CN.UTF-8 | ...... template1 | system | UTF8 | zh_CN.UTF-8 | ...... test | system | UTF8 | zh_CN.UTF-8 | ...... (6 行记录) 三、 表空间-Tablespace 数据库在逻辑上分成多个存储单元,该单元称作表空间。表空间用作把逻辑上相关的数据结构放在一起。数据库逻辑上是由一个或多个表空间组成。在数据库初始化的时候,会自动创建sys_default、sys_global和sysaudit三个表空间。 其中: sys_global:该表空间用于存放系统表,对应存储目录是$KINGBASE_DATA/global/。 sys_default:创建表时的默认表空间,该表空间的物理文件存储在数据目录中的base目录中,例如:$KINGBASE_DATA/base/。 sysaudit:该表空间用于存放安全审计相关的数据。对应存储目录$KINGBASE_DATA/sys_aud 下面通过具体的操作来演示如何查看KingBaseES中已有的表空间和如何创建自己的表空间。 (1)登录KingBaseES。 ksql -U system -d kingbase (2)查看KingBaseES中已有的表空间。 kingbase=# \db # 输出的信息如下: 表空间列表 名称 | 拥有者 | 所在地 -------------+--------+-------- sys_default | system | sys_global | system | sysaudit | system | (3 行记录) (3)创建自己的表空间。
阅读全文