[转帖]金仓数据库KingbaseES表空间(tablespace)知多少
金仓数据库KingbaseES表空间定义
金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等。一旦表空间被创建,那么就可以在创建数据库对象时通过名称来引用他。
一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间sys_default,作为缺省的默认表空间。一个表空间只能属于一个数据库,只有创建了数据库之后才能创建属于该数据库的表空间。
表空间优缺点
通过使用表空间,数据库管理员可以控制一个KingbaseES数据库安装的磁盘布局。
这么做至少有两个用处。
第一,如果初始化集簇所在的磁盘分区或者卷用光了,而又不能在逻辑上对磁盘进行扩展,那么可以在其他不同的磁盘分区上创建表空间,直到系统可以被重新配置。
第二,表空间允许数据库管理员根据数据库对象的使用模式来优化性能。例如,一个很频繁使用的索引可以被放在非常快并且非常可靠的磁盘上,如一种非常贵的固态设备。同时,一个很少使用的或者对性能要求不高的存储归档数据的表可以存储在一个便宜但比较慢的磁盘系统上。
缺点是即便是位于主要的KingbaseES数据目录之外,表空间也是数据库集簇的一部分并且不能被视作数据文件的一个自治集合。它们依赖于包含在主数据目录中的元数据,并且因此不能被附加到一个不同的数据库集簇或者单独备份。类似地,如果丢失一个表空间(文件删除、磁盘失效等), 数据库集簇可能会变成不可读或者无法启动。把一个表空间放在一个临时文件系统 (如一个内存虚拟盘)上会给整个集簇带来可靠性的风险。
总体来说表空间在某些特殊情况下是非常好用的,特别是磁盘空间不够的情况下来部署数据库。
备份表空间
如果对具有表空间的数据库执行文件系统备份,则必须备份所有表空间,不能备份或恢复单个表空间。
表空间使用方法总结
数据库创建时会自动创建sys_default和sys_global默认表空间,这两个表空间分别存储在数据路径下的base和global目录,而用户自己创建的表空间则存储在数据路径下的sys_tblspc目录,其实是一个软连接,连接到真正的表空间存储空间。
- 创建表空间目录:在新的分区创建一个新的目录,注意不能是KingbaseES数据库的主目录内。创建的目录隶属于KingbaseES的操作系统系统用户。确切地说,该用户必须具有更改目录权限的权限。所有后续在该表空间中创建的对象都将被存放在这个目录下的文件中。该位置不能放在可移动或者临时存储上,因为如果表空间丢失会导致整个集簇无法工作。表、索引和整个数据库都可以被分配到特定的表空间。
- 创建表空间:
CREATE TABLESPACE newtblsp LOCATION '/tmp/newtblsp'; - 在newtblsp表空间上创建表
:- CREATE TABLE tab (
- id integer NOT NULL,
- val text NOT NULL
- ) TABLESPACE newtblsp;
- 在newtblsp表空间创建索引,注意如果不指定表空间,索引会创建在默认系统表空间,而不是和表在一起的表空间:
CREATE INDEX tab_val_idx ON tab (val) TABLESPACE newtblsp;
- 更改表的表空间:
- ALTER TABLE tab
- ADD CONSTRAINT tab_pkey PRIMARY KEY (id)
- USING INDEX TABLESPACE newtblsp;
- 在表空间创建数据库:在该数据库中创建的所有对象都将自动放置在数据库的表空间中。
CREATE DATABASE newdb TABLESPACE newtblsp; - 更改表空间定义和参数
:- ALTER TABLESPACE oldtblsp RENAME TO newtblsp;
- ALTER TABLESPACE newtblsp OWNER TO { new_owner | CURRENT_USER | SESSION_USER };
- ALTER TABLESPACE newtblsp SET ( tablespace_option = value [, ... ] )
- ALTER TABLESPACE newtblsp RESET ( tablespace_option [, ... ] )
- 要删除一个空的表空间,使用命令:
DROP TABLESPACE newtblsp; - 表空间限额管理:可以对指定表空间的大小进行限额,一旦超过该限额,对表空间中数据的insert,update,copy to,select into,create index等操作将会终止或者警告。
- SELECT spcname,oid FROM sys_tablespace;
- SELECT set_space_quato(oid, quota);
将在旧的表空间数据移动到新的表空间:
- --将旧表空间中的数据移动到新的表空间
- alter table all in tablespace old_tblspc set tablespace new_tblspc;
- --将旧表空间中的索引移动到新的表空间
- alter index all in tablespace old_tblspc set tablespace new_tblspc;
11. 数据库迁移到新机器后,如何修改表空间(此方法非官方推荐方法,可以在测试机测试使用):
需要在数据库目录下的sys_tblspc目录下,重新建立软符号链接到真正的表空间地址,重新启动数据库即可。
符号链接命令: ln -s /data0/tpch_tblspc 16388
【更多人大金仓数据库信息,详见https://help.kingbase.com.cn/】
[转帖]金仓数据库KingbaseES表空间(tablespace)知多少的更多相关文章
- 通过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 ...
- 表空间tablespace,数据文件datafiles,和控制文件control files介绍
https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm#i5919 本文系翻译 表空间tablespace,数据文件da ...
- oracle表空间tablespace
用户:用户是在实例下建立的.不同实例可以建相同名字的用户. 表空间:表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个 ...
- KingbaseES 表空间加密-透明加密
透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密.加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密.当前的透明 ...
随机推荐
- 通用 Mapper 的批量插入实现
具体的 SQL 模板实现如下所示: import org.apache.ibatis.mapping.MappedStatement; import tk.mybatis.mapper.MapperE ...
- 云图说|华为云CodeArts Build,云端化的编译构建平台
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 本文分享自华为云社区&l ...
- 聊聊Java的异常机制问题
摘要:java异常指在程序运行时可能出现的一些错误,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流. 本文分享自华为云社区<Ja ...
- 华为云FusionInsight连续三次获得第一,加速释放数据要素价值
摘要:近日,IDC发布<中国大数据平台市场研究报告,2021 H1>,华为云FusionInsight智能数据湖已连续三次获得大数据平台市场份额第一. 本文分享自华为云社区<华为云F ...
- 火山引擎 DataLeap 套件下构建数据目录(Data Catalog)系统的实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 摘要 Data Catalog 产品,通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解 ...
- Python openpyxl 将 Excel中的汉字 转换成拼音首字母
将Excel中的汉字列,转换成拼音首字母,并保存 需要安装导入 pypinyin.openpyxl 库 # pip install pypinyin from pypinyin import laz ...
- peewee 操作 sqlite 锁表问题分析
在使用python orm 框架 peewee 操作数据库时时常会抛出以一个异常,具体的报错就是 database is locked 初步了解是因为sqlite锁的颗粒度比较大,是库锁.当一个连接在 ...
- 使用nginx代理emqx的TCP、WS、WSS连接请求
项目代理关系: 注:主机上已存在名为:nginx-proxy 的一级 nginx 的代理,将监听了主机的 80.443端口 docker-compose.yml version: "3.7& ...
- Spring Cloud 和 Dubbo 哪个会被淘汰?
今天在知乎上看到了这样一个问题:Spring Cloud 和 Dubbo哪个会被淘汰?看了几个回答,都觉得不在点子上,所以要么就干脆写篇小文瞎逼叨一下. 简单说说个人观点 我认为这两个框架大概率会长期 ...
- Visual Studio 2022 激活码
Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterprise: VHF9H-NXBBB-638P6-6JHCY-88JWH Key 来自网络 备忘...