赵渝强老师,openGauss的逻辑存储结构是怎样的?

摘要:openGauss的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都
openGauss的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。 点击这里查看视频讲解:【赵渝强老师】高斯数据库(openGauss)的逻辑存储结构 下面对openGauss数据库中的各种逻辑存储结构进行说明。 一、 数据库集群-Database Cluster 它也叫数据库集簇,是指由单个OpenGauss数据库服务器实例管理的所有数据库集合。组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用数据库的后台线程和内存结构。一个数据库集群可以包括:多个数据库、多个用户以及数据库中的所有对象。 在文件系统术语中,一个数据库集群是一个单一目录,该目录称之为数据目录或数据区域,所有数据都将被存储在该目录中。它没有默认的位置,其文件系统位置可以由-D选项或者环境变量PGDATA指定,例如: [postgres@opengauss gaussdb]$ pwd /home/postgres/training/gaussdb [postgres@opengauss gaussdb]$ bin/gs_ctl -D data/single_node/ -l logfile start 二、 数据库-Database 在OpenGauss中,数据库本身也是数据库对象。不同的数据库在逻辑上彼此分离,除数据库之外的其他数据库对象(例如:表、索引等等)都属于它们各自的数据库。通过下面的语句可以查看OpenGauss数据库服务器中已存在的数据库。 (1)登录OpenGauss。 bin/gsql -d postgres (2)查看OpenGauss中已有的数据库。 openGauss=# \l # 输出的信息如下: List of databases Name | Owner | Encoding |...... -----------+----------+----------+------ finance | postgres | UTF8 |...... postgres | postgres | UTF8 |...... school | postgres | UTF8 |...... scott | postgres | UTF8 |...... template0 | postgres | UTF8 |...... template1 | postgres | UTF8 |...... | | |...... (6 rows) 三、 表空间-Tablespace 表空间是一个目录,在一个数据库集群中可以存在多个表空间。它里面存储的是数据库的各种物理文件。每个表空间可以对应多个数据库。表空间用作把逻辑上相关的数据结构放在一起。在数据库集群初始化的时候,会自动创建pg_default和pg_global两个表空间。其中: pg_global:该表空间用于存放系统表。 pg_default:创建表时的默认表空间,该表空间的物理文件存储在数据目录中的base目录中,如:/home/postgres/training/gaussdb/data/single_node/base。 下面通过具体的操作来演示如何查看OpenGauss中已有的表空间和如何创建自己的表空间。 (1)登录OpenGauss。 bin/gsql -d postgres (2)查看PostgreSQL中已有的表空间。 openGauss=# \db # 输出的信息如下: List of tablespaces Name | Owner | Location ------------+----------+---------- pg_default | postgres | pg_global | postgres | (2 rows) (3)创建自己的表空间。 openGauss=# create tablespace mydemotbs location '/home/postgres/training/mydemotbs'; (4)在mydemotbs 表空间上创建表。
阅读全文