人大金仓数据库--实例、数据库、模式、表空间之间的关系
而表空间在逻辑上就是用于存储数据的,每个数据库对象在进行存储时,都需要对其指定唯一的表空间,而一个表空间可以存放不同的数据库对象,甚至是不同模式、不同数据库下的数据库对象,因此在导航树上可以发现表空间时独立存在于数据库实例中的,与其他部分没有包含关系。在数据库中,一个实例对应一个数据库用户,在一个实例下,包含了多个数据库,用户可以根据自身的需求,建立不同的数据库,将数据分开存放;可以理解为模式是对
关键字:
KingbaseES、实例、数据库、模式、表空间、人大金仓
数据库从字面理解就是存放数据的仓库,我们平时说的KingabseES数据库实际上是指数据库管理系统(DBMS, DataBase Management System),是一种操纵和管理数据库的软件,用于建立、使用和维护数据库。本文简单介绍了KingBaseES数据库中的实例、数据库、模式、表空间的概念与它们之间的关联以及在数据库系统中的组成部分。
2. KingbaseES数据库体系
在数据库中,一个实例对应一个数据库用户,在一个实例下,包含了多个数据库,用户可以根据自身的需求,建立不同的数据库,将数据分开存放;一个数据库中又包含了多个对象,而这些对象也就是我们所说的数据本身,可以理解为数据文件;从逻辑上理解,表空间就是用于存放数据,每个数据文件存放在一个指定的表空间中,而一个表空间可以存放多个数据文件甚至是不同模式、不同数据库中的数据文件。
2.1 数据库实例
数据库实例可以理解为一个程序,是位于用户和操作系统之间的一层数据管理软件,是访问数据库的通道;用户对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等操作都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
在KingbaseES数据库中,不同用户通过不同的实例与数据库服务器建立连接,不同实例可以兼容不同模式的数据库,我们可以通俗的理解为一个实例即为一个数据库用户。
2.2 数据库(Database)
数据库在这里实际上是一个逻辑上的概念,对应的实体是数据库管理软件存储在硬盘上的数据库;一个实例下可以包含多个数据库,用户可以根据自身的需求才存放不同的数据。以下是对数据库的相关操作:
- 查看数据库信息:\l
-
- 创建数据库:create database 数据库名 owner 属主名
-
- 修改数据库:
- 对数据库改名:alter database 数据库名 rename to 新名称;
-
- 更改数据库属主:alter database 数据库名 owner to 属主名;
-
- 删除数据库:drop database 数据库名;
-
- 2.3 模式(Mode)
模式是数据库中的一个概念,可以将其理解为一个命名空间或者目录,不同的模式下面可以有相同名称的表、函数等数据库对象。提出模式的概念是为了方便管理,只要有权限,各个模式之间也能相互调用。可以理解为模式是对数据库的逻辑分隔,用户可以根据需求不同,将数据库划分为不同的模式,在不同的模式下存放不同类型的数据。
一个数据库可以包含多个模式,模式中又包含了表、函数等其他数据库对象。以下是一些对于数据库模式的常见操作:
- 查看数据库中的模式列表:\dn+
-
- 其中,public模式为创建数据库时会默认创建的模式,用于存放对象的默认模式;sysaudit模式会存储会话对象的审计日志记录、对象审计日志记录;xlog_revord_reda模式用于保存xlog事务日志相关的信息。
- 创建模式:create schema 模式名 authorization 属主用户名;
-
- 修改模式:
- 1)alter schema 模式名 owner to u1;(修改模式的属主)
-
- 2)alter schmea 模式名 rename to 新模式名;(修改模式名)
-
- 删除模式:drop schema 模式名;
-
- 查看模式中的对象信息:\d+ 模式名.*
-
- 2.4 表空间(Tablespace)
KingbaseES中的表空间也是一个逻辑概念,它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但是一个数据文件只能属于一个表空间);从物理上理解,数据库的数据被存放在数据文件中,从逻辑上理解,数据时存放在表空间中的。
下面是一些关于表空间的基本操作:
- 查看表空间信息:\db+
-
- 创建表空间:
- 创建表空间首先需要规划表空间对应的文件系统目录:
-
- 创建非加密表空间:
- Create tablespace 表空间名 location ‘目录路径’;
-
- 创建加密表空间:
- Create tablespace 表空间名 location ‘目录路径’with (encryption = true);
- 前置条件:将sysencrypt加到kingbase.conf shared_preload_libraries中,并重启数据库成功
-
- 修改表空间:
- 修改属主:alter tablespace 表空间名 owner to 属主名;
-
- 修改名称:alter tablespace 表空间名 rename to 新名称;
-
- 删除表空间:drop tablespace 表空间名;
-
- 2.5 实例、数据库、模式、表空间的关系
为了能够直观的观察出实例、数据库、模式、表空间之间的关系,这里可以借助KingbaseES数据库管理工具KStudio的导航树来理解:
从图中可以明显看出,整个对象就是一个数据库实例,相当于一个用户;在实例下有多个数据库,数据库中包含多个模式,不同的模式下包含不同的数据库对象用于数据的存储;而表空间在逻辑上就是用于存储数据的,每个数据库对象在进行存储时,都需要对其指定唯一的表空间,而一个表空间可以存放不同的数据库对象,甚至是不同模式、不同数据库下的数据库对象,因此在导航树上可以发现表空间时独立存在于数据库实例中的,与其他部分没有包含关系。
参考资料
《KingbaseES产品手册》

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)