注册
学习心得:达梦表空间
专栏/技术分享/ 文章详情 /

学习心得:达梦表空间

唔系渣渣辉 2023/09/18 1695 1 0
摘要

基本概念:

表空间是数据库的逻辑划分,达梦数据库在表空间这方面兼容了Oracle表空间-数据文件的机制。一个表空间只能属于一个数据库,表空间由一个或多个数据文件组成。
在创建达梦数据库时,会自动创建以下五个表空间:

  • SYSTEM表空间:存放达梦数据字典信息,用户不能在SYSTEM表空间创建表和索引。
  • ROLL表空间:存放事务运行过程中执行DML操作之前的值,为访问该表的其他会话提供数据的读一致性视图。
  • TEMP表空间:当用户的SQL语句需要磁盘空间来完成某个操作时,达梦数据库会从TEMP表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL语句中间结果集以及用户创建的临时表等都会使用到 TEMP表空间。
  • HMAIN表空间: 属于HTS(HUGE TABLESPACE)表空间,当用户在创建 HUGE 表时,未指定 HTS 表空间的情况下,充当默认HTS表空间。
  • MAIN表空间: 在初始化库的时候,就会自动创建一个大小为128M的数据文件MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。

其中ROLL表空间、TEMP表空间、HMAIN表空间都由数据库自动管理,用户无需干涉。

值得一提的是,达梦的最新版本中已经支持了表空间数据文件的缩小和删除功能(从最后一个数据文件开始删除)。

表空间和数据文件的常用维护操作:

创建表空间
例:创建表空间test,包含test01.dbf数据文件,初始大小为64M,打开文件的自动扩展功能,每次扩展1M,文件最大大小为1G。

CREATE TABLESPACE test DATAFILE '/dm/data/DMDB/test01.dbf' SIZE 64 AUTOEXTEND ON NEXT 1 MAXSIZE 1024 ;

为表空间增加数据文件
例:为表空间test增加test02.dbf数据文件,初始大小为64M,打开文件的自动扩展功能,每次扩展1M,文件最大大小为1G。

ALTER TABLESPACE test ADD DATAFILE '/dm/data/DMDB/test02.dbf' SIZE 64 AUTOEXTEND ON NEXT 1 MAXSIZE 1024 ;

扩大数据文件

ALTER TABLESPACE test RESIZE DATAFILE '/dm/data/DAMENG/test01.dbf' to 256;

查数据文件的大小和剩余空间

SELECT t.FILE_NAME, t.BYTES/1024/1024, t.USER_BYTES/1024/1024 FROM DBA_DATA_FILES t;

删除表空间

DROP TABLESPACE test;

注意事项:

  • 表空间名在数据库中必须唯一,名称最大长度 128 字节。
  • 一个表空间中,数据文件和镜像文件一起不能超过 256 个。
  • SYSTEM 表空间不允许关闭自动扩展,且不允许限制空间大小。
  • 指明新生成的数据文件在操作系统下的路径+新数据文件名。数据文件的存放路径符合达梦安装路径的规则,且该路径必须是已经存在的。
  • 用户表空间有联机和脱机两种状态系统表空间、回滚表空间、重做日志表空间和临时文件表空间不允许脱机。
  • 设置表空间状态为脱机状态时,如果该表空间有未提交的事务,则脱机失败报错,脱机后可对表空间的数据进行备份。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服