[转帖]金仓数据库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 表空间加密-透明加密
透明存储加密是指数据在写到磁盘上时对其进行加密,当授权用户重新读取数据时再对其进行解密.加密解密过程对用户都是透明的,无需对应用程序进行修改,授权用户甚至不会注意到数据已经在存储介质上加密.当前的透明 ...
随机推荐
- 【scikit-learn基础】--『监督学习』之 均值聚类
聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...
- gitee图床不能用了,心态崩了
起因 大概上周五晚上吧,想着可以正常下班了.也没啥事,正好可以逛逛自己的小破站,看看有没有小伙伴留言什么的. 然后发现小破站图片显示不出来了... 一开始也没在意,想着可能是Gitee又挂了,可能一会 ...
- 云原生微服务的下一站:Proxyless Service Mesh
本文分享自华为云社区<DTSE Tech Talk | 第46期:云原生微服务的下一站:Proxyless Service Mesh>,作者:华为云社区精选. 本期直播主题是<云原生 ...
- KubeEdge边缘计算在顺丰科技工业物联网中的实践
摘要:顺丰物联网平台负责人胡典钢为大家带来了 " 边缘计算在工业物联网中的应用实践与思考 " ,阐述了工业物联网的发展背景.整体架构设计以及边缘计算在此过程中承担的重要角色,并梳理 ...
- npm install过程中遇到typings deprecated的warning该怎么处理
摘要:在项目里进行npm install操作的时候,发现typings.json文件里的一些定义文件爆出了已经弃用的警告,怎么办? 本文分享自华为云社区<npm install过程中遇到typi ...
- iOS 应用上架的步骤和工具简介
编辑 APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店.最重要的是,即使没有 ...
- 火山引擎DataLeap的Catalog系统搜索实践 (二):整体架构
整体架构 火山引擎DataLeap的Catalog搜索系统使用了开源的搜索引擎Elasticsearch进行基础的文档检索(Recall阶段),因此各种资产元数据会被存放到Elasticsearch中 ...
- Axure 二维码扫码
基础布局 1.一个300X395的黑底黑框矩形,不透明度为20%,命名为"背景框": 2.一个150X150的白底白框矩形,不透明度为70%,命名为"扫描框": ...
- mit6.s081 lab2: system calls
1.system call tracing(moderate) 要求:创建一个系统调用来实现跟踪特性,它采用一个参数来指定跟踪哪一个系统调用,例如:跟踪fork系统调用,程序调用trace(1< ...
- EasyUI DataGrid 没有数据
//判断后台返回数据是否没数据,没数据DataGrid添加一行 $(this).datagrid('appendRow', { itemid: '<div style="text-al ...