[转帖]金仓数据库KingbaseES表空间介绍
1、表空间的概念
KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在KingbaseES中表空间实际上就是给表指定一个存储目录。
2、表空间的作用
通过使用表空间,管理员可以控制一个KingbaseES安装的磁盘布局。
- 如果初始化集簇所在的分区或者卷用光了空间,而又不能在逻辑上扩展或者做别的什么操作,那么表空间可以被创建在一个不同的分区上,直到系统可以被重新配置。
- 表空间允许管理员根据数据库对象的使用模式来优化性能。例如,一个很频繁使用的索引可以被放在非常快并且非常可靠的磁盘上,如一种非常贵的固态设备。同时,一个很少使用的或者对性能要求不高的存储归档数据的表可以存储在一个便宜但比较慢的磁盘系统上。
用一句话来讲:能合理利用磁盘性能和空间,制定最优的物理存储方式来管理数据库表和索引。
3、表空间跟数据库的关系
- 在Oracle数据库中;一个表空间只属于一个数据库使用;而一个数据库可以拥有多个表空间。属于"一对多"的关系
- 在KingbaseES集群中;一个表空间可以让多个数据库使用;而一个数据库可以使用多个表空间。属于"多对多"的关系。
4、系统默认表空间
表空间sys_default是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应存储目录$KINGBASE_HOME/data/base/
表空间sys_global用来存放系统字典表;对应存储目录$KINGBASE_HOME/data /global/
列出现有的表空间:
-
test=# \db
-
-
-
-
表空间列表
-
-
名称 | 拥有者 | 所在地
-
-
-------------+--------+--------
-
-
sys_default | system |
-
-
sys_global | system |
-
-
sysaudit | system |
-
-
(3 行记录)
-
-
-
-
test=# select oid,* from sys_tablespace;
-
-
-
-
oid | oid | spcname | spcowner | spcacl | spcoptions
-
-
------+------+-------------+----------+--------+------------
-
-
1663 | 1663 | sys_default | 10 | |
-
-
1664 | 1664 | sys_global | 10 | |
-
-
1986 | 1986 | sysaudit | 10 | |
-
-
(3 行记录)
5、创建表空间
语法:
-
CREATE TABLESPACE tablespace_name
-
-
[ OWNER { new_owner | CURRENT_USER | SESSION_USER } ]
-
-
LOCATION 'directory'
-
-
[ ONLINE | OFFLINE ]
-
-
[ WITH ( tablespace_option = value [, ... ] ) ]
C5023版本也可支持oracle的语法(未设计功能,只做语法兼容):
-
CREATE [ SMALLFILE ] TABLESPACE tablespace_name
-
-
[ DATAFILE file_specification [ , file_specification ...]
其中 file_specification 是:
{ [ 'filename' ] [ SIZE { filesize [ K | M | G | T | P | E ] } ] [ REUSE ] [ AUTOEXTEND { ON [ NEXT { filesize [ K | M | G | T | P | E ] } [ MAXSIZE { UNLIMITED | { filesize [ K | M | G | T | P | E ] } } ] | OFF } ] }
示例如下:
test=# CREATE TABLESPACE tsp01 OWNER system LOCATION '/opt/Kingbase/ES/V8/mytbs';CREATE TABLESPACE
目录"/opt/Kingbase/ES/V8/mytbs "必须是一个已有的空目录,并且属于KingbaseES操作系统用户
兼容Oracle语法:(V008R006C005B0023版本)
-
test=# CREATE TABLESPACE tsp01 LOCATION '/home/kbc5/mytbs' ONLINE;
-
-
CREATE TABLESPACE
6、权限分配
表空间的创建本身必须作为一个数据库超级用户完成,但在创建完之后之后你可以允许普通数据库用户来使用它.要这样做,给数据库普通用户授予表空间上的CREATE权限。表、索引和整个数据库都可以被分配到特定的表空间.
示例用户"tuser":为普通用户。
test=# \c test tuser You are now connected to database "test" as user "tuser". test=> create table test_tsp(id int) tablespace tsp01; ERROR: permission denied for tablespace tsp01 test=> \c test system You are now connected to database "test" as user "system". test=# GRANT CREATE ON TABLESPACE tsp01 TO tuser; GRANT test=# \c test tuser You are now connected to database "test" as user "tuser". test=> create table test_tsp(id int) tablespace tsp01; CREATE TABLE
7、数据库设置新的默认表空间
语法:
ALTER DATABASE name SET TABLESPACE new_tablespace
以数据库test为例:
ALTER DATABASE test SET TABLESPACE tsp01;
注意1:执行该操作;不能连着对应数据库操作
-
test=# ALTER DATABASE test SET TABLESPACE tsp01;
-
-
ERROR: cannot change the tablespace of the currently open database
注意2:执行该操作;新的表空间内不能有对象存在
-
test1=# ALTER DATABASE test SET TABLESPACE tsp01;
-
-
ERROR: some relations of database "test" are already in tablespace "tsp01"
-
-
HINT: You must move them back to the database's default tablespace before using this command.
注意3:执行该操作;必须是没有人连着对应的数据库
-
test1=# ALTER DATABASE test SET TABLESPACE tsp01;
-
-
ERROR: database "test" is being accessed by other users
-
-
DETAIL: There is 1 other session using the database.
断开其他连接后:
-
test1=# ALTER DATABASE test SET TABLESPACE tsp01;
-
-
ALTER DATABASE
查看数据库默认表空间
test=# select d.datname,p.spcname from sys_database d, sys_tablespace p where d.datname='test' and p.oid = d.dattablespace; datname | spcname---------+--------- test | tsp01(1 row)
8、临时表空间
KingbaseES的临时表空间,通过参数temp_tablespaces进行配置,KingbaseES允许用户配置多个临时表空间。配置多个临时表空间时,使用逗号隔开。如果没有配置temp_tablespaces 参数,临时表空间对应的是默认的表空间sys_default。
KingbaseES的临时表空间用来存储临时表或临时表的索引,以及执行SQL时可能产生的临时文件例如排序,聚合,哈希等。为了提高性能,一般建议将临时表空间放在SSD或者IOPS,以及吞吐量较高的分区中。
$ mkdir -p /opt/Kingbase/ES/V8/mytemptbs $ chown -R kingbase: kingbase /opt/Kingbase/ES/V8/mytemptbs test=# CREATE TABLESPACE temp01 LOCATION '/opt/Kingbase/ES/V8/mytemptbs'; CREATE TABLESPACE test=# show temp_tablespaces ; temp_tablespaces ------------------ (1 row)
设置临时表空间
会话级生效
-
test=# set temp_tablespaces = 'temp01';
-
-
SET
永久生效
修改参数文件kingbase.conf
重载配置
-
[kingbase@singlekbdb data]$ grep "temp_tablespace" kingbase.conf
-
-
temp_tablespaces = 'temp01' # a list of tablespace names, '' uses
查看临时表空间
-
test=# show temp_tablespaces ;
-
-
temp_tablespaces
-
-
------------------
-
-
temp01
-
-
-
-
(1 row)
[转帖]金仓数据库KingbaseES表空间介绍的更多相关文章
- 通过ODBC接口访问人大金仓数据库
国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...
- QT 之 ODBC连接人大金仓数据库
QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
- ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件
ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...
- orale数据库.实例.表空间.用户.表
近期因为工作原因接触到Oracle数据库.了解到Oracle和mysql的结构上还是有很大的区别的. Oracle数据库---实例---表空间---用户---表 我们将从这5个方面来了解Oracle ...
- Oracle数据库查看表空间sql语句
转: Oracle数据库查看表空间sql语句 2018-09-03 15:49:51 兰海泽 阅读数 6212 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...
- 通过jmeter连接人大金仓数据库
某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...
- KingbaseES 表空间加密-透明加密
透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密.加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密.当前的透明 ...
- db2实例、数据库、表空间
创建数据数据库之前必须创建实例,数据库是运行在实例之上的.实例在本质上是由一些后台进程和共享内存组成.实例相当于是数据库的一个容器,可以包含多个数据库,但是一个数据库只能由一个实例进行管理.相当于Wi ...
- linux下的oracle数据库和表空间的导入导出
由于oracle是安装在linux上面,因此需要oracle的导入导出都是使用命令进行操作.oracle允许整个数据库导入导出和表空间的导入导出. 数据库导入导出 以下操作是在操作系统控制台命令中执行 ...
随机推荐
- 2023-09-10:用go语言编写。作为项目经理,你规划了一份需求的技能清单 req_skills, 并打算从备选人员名单 people 中选出些人组成一个「必要团队」 ( 编号为 i 的备选人员
2023-09-10:用go语言编写.作为项目经理,你规划了一份需求的技能清单 req_skills, 并打算从备选人员名单 people 中选出些人组成一个「必要团队」 ( 编号为 i 的备选人员 ...
- 让“物”能说会道,揭晓华为云IOT黑科技
什么是物联网?如何让"物"说话? 如今是一个万物互联的时代,物联网已经成为一个高大上的名词,那什么是物联网呢?从人与人之间的连接来看,指的是人们之间的通话.视频.进入智能时代以后, ...
- DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥
摘要:华为云EI DTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息 ...
- centos8 nginx server root指向自定义目录如(/data/www),访问报403 404,所有文件用户组为root 权限为755
centos8 yum 自定义安装的nginx,修改nginx默认默认目录,指向自定义的目录 /data/www,访问报404,所有文件用户组为root 权限为755 nginx 以user 为ngi ...
- 十大 CI/CD 安全风险(五)
在本篇文章中,我们将了解第三方服务的监管不足,工件完整性验证及日志可见性不足这三个关键 CI/CD 安全风险,并给出缓解相应风险的建议与措施. 第三方服务监管不足 CI/CD 攻击面包括企业资产,例如 ...
- Axure 公告通知
1.一个浅黄色的底图 (710X30) ; 2.一个喇叭小图标(Volume up) ; 3.一个动态面板. 动态面板中设置statel.state2和state3三种面板状态,这三种状态中分别放三个 ...
- Kubernetes(K8S) yaml 介绍
使用空格做为缩进 缩进的空格数目不重要, 只要相同层级的元素左侧对齐即可 低版本缩进时不允许使用 Tab 键, 只允许使用空格 使用#标识注释, 从这个字符一直到行尾, 都会被解释器忽略 --- 使用 ...
- python实现微信扫码支付
import datetime import hashlib import time import json import random import string import requests f ...
- 只需 3 步,人人都能搭建自己的 chatgpt 微信机器人
大家好,我是徐公,大厂 6 年经验,CSDN 博客专家.最近,ChatGpt 很火,身边的人都在讨论,会不会成为下一个风口,像前几年互联网一样,迎来井喷式的发展. 徐公我最近也是在密切关注,最近,在 ...
- 批量上传 jar 包到远程 maven 仓库
mvn deploy命令: mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=log-lib-1.1.jar -DgroupId=com.sun ...
