
达梦数据库教程(5)达梦表空间管理
一、达梦表空间介绍
1、基本概念
达梦数据库逻辑存储结构从小到大为 页-> 簇 -> 段 -> 数据文件 -> 表空间 -> 数据库 。每一个上层都由多个下层构成。如表空间就是由一个或者多个数据文件组成,表空间是数据库所有对象存放的逻辑空间,这些逻辑空间又以物理方式存储于操作系统的不同目录和文件中。达梦数据库表空间分为普通表空间和混合表空间,普通表空间不能存储 HUGE 表,而混合表空间可以同时存储普通表和 HUGE 表,如果为普通表空间增加指定的 HUGE 数据文件路径也可以升级为混合表空间
2、达梦默认表空间
在安装好达梦数据库实例后会自动创建 SYSTEM 、ROLL 、MAIN 和 TEMP 4 个表空间
· SYSTEM 表空间
SYSTEM 表空间又称为系统表空间,存放达梦数据库字典信息,用户不能在 SYSTEM 表空间创建表和索引
· ROLL 表空间
该表空间用来存放事务运行过程中执行 DML(数据操作语言)操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。该表空间由达梦数据库自行维护,用户无需干预
· MAIN 表空间
如果创建用户的时候没有指定默认表空间,将默认使用MAIN表空间。该表空间为混合表空间,包含一个 128M 的数据文件 MAIN.DBF和一个 HMAIN 目录作为 HUGE 数据文件路径
· TEMP 表空间
当用户的 SQL 语句需要申请磁盘空间来完成创建索引、无法在内存中完成的排序操作、SQL 语句中间结果集以及创建临时表等都会使用到 TEMP 表空间,该表空间完全由达梦数据库自行维护
3、达梦用户表空间
SYS、SYSSSO、SYSAUDITOR 作为系统用户,默认用户表空间是 SYSTEM;而 SYSDBA 的默认表空间为 MAIN。其他用户在创建好以后也都应该有一个默认表空间,如果没有指定默认表空间,则使用 MAIN 表空间为默认表空间。通常建议为每个用户创建一个独立的表空间来存放业务数据。如果用户在创建表的时候单独声明了其他表空间,则该表的索引和数据都将存储在指定的表空间中,但是该用户的默认表空间仍然不变
二、达梦表空间管理
1、查询表空间
查看当前数据库中已有表空间、对应文件、大小以及其他信息
SELECT TABLESPACE_NAME,FILE_NAME,BYTES,AUTOEXTENSIBLE,MAXBYTES,ONLINE_STATUS,STATUS FROM DBA_DATA_FILES
2、查询表空间使用率
SELECT b.tablespace_name AS "TABNAME", b.total_bytes / (1024 * 1024) AS "TOTAL(M)", NVL(a.free_bytes, 0) / (1024 * 1024) AS "FREE(M)", (b.total_bytes - NVL(a.free_bytes, 0)) / (1024 * 1024) AS "USED(M)", ROUND( (b.total_bytes - NVL(a.free_bytes, 0)) / NULLIF(b.total_bytes, 0) , 4) * 100 AS "USED %" FROM (SELECT tablespace_name, SUM(bytes) AS total_bytes FROM dba_data_files GROUP BY tablespace_name) b LEFT JOIN (SELECT tablespace_name, SUM(bytes) AS free_bytes FROM dba_free_space GROUP BY tablespace_name) a ON a.tablespace_name = b.tablespace_name;
3、查询用户默认表空间
SELECT USERNAME,DEFAULT_TABLESPACE,DEFAULT_INDEX_TABLESPACE FROM SYS.DBA_USERS
4、查询指定表对应的表空间
SELECT OWNER,TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES WHERE TABLE_NAME like '表名'
5、创建表空间
表空间创建完成以后会立即在操作系统对应文件目录中生成一个文件
#创建表空间并开启autoextend on自动扩展,默认最大可扩展到64TB,如果要限制打开可以 create tablespace <表空间名称> datafile '<数据文件路径/数据文件名称>' size <数据文件大小> autoextend on; #创建表空间、开启自动扩展但是限制大小 create tablespace <表空间名称> datafile '<数据文件路径/数据文件名称>' size <数据文件大小> autoextend on MAXSIZE <数据文件最大大小>; #创建表空间,关闭自动扩展 create tablespace <表空间名称> datafile '<数据文件路径/数据文件名称>' size <数据文件大小> autoextend off; #size参数默认单位是MB,无法修改 #示例,新增YWPIE表空间,初始大小256MB,每次自动扩展128M create tablespace YWPIE datafile '/data/dmdbms/DAMENG/YWPIE01.DBF' size 256 autoextend on next 128 CACHE = NORMAL;
6、为表空间增加数据文件
表空间增加后会立即在操作系统对应文件目录中生成一个文件
# 为表空间增加数据文件并开启autoextend on自动扩展,默认最大可扩展到64TB ALTER tablespace <表空间名称> ADD datafile '<数据文件路径/数据文件名称>' size <数据文件大小> autoextend on; #示例,为YWPIE表空间增加数据文件,初始大小128MB。 ALTER tablespace CHENTBS ADD datafile '/db/dm8/data/YWPIE0102.DBF' size 128;
7、创建对象时指定表空间
在达梦数据库中,创建表以后将默认使用用户的默认表空间,但是也可以指定其他表空间
# SYSDBA 用户默认表空间是MAIN,这里指定新增YWPIE_TABLE1表到YWPIE表空间。
CREATE TABLE YWPIE_TABLE1(ID INT) TABLESPACE YWPIE;
8、调整表空间大小
#将YWPIE表空间大小调整为512M ALTER TABLESPACE YWPIE RESIZE DATAFILE '/db/dm8/data/YWPIE01.DBF' TO 512;
9、调整表空间路径
调整表空间路径时需要先离线表空间,并且不支持在主备模式下进行该操作
ALTER TABLESPACE YWPIE OFFLINE; ALTER TABLESPACE YWPIE RENAME DATAFILE '/db/dm8/data/YWPIE02.DBF' TO '/data/dmdbms/data/YWPIE02.DBF';
10、删除表空间
需要删除的表空间不能有数据,如果存在数据需要先进行删除
DROP TABLESPACE YWPIE;
猜你喜欢

国产数据库 达梦数据库教程(12)守护集群部署与管理
一、达梦数据库守护集群介绍达梦数据库通过守护集群可以实现主备模式或读写分离集群,二者在搭建过程上基本一致,区别在于:· 数据守护集群:通常使用实时归档 + ARCH WAIT APPLY=0 (高性能...

国产数据库 达梦数据库教程(11)达梦数据库授权与版本更新
一、达梦数据库授权管理1、查询授权查询授权到期时间,如果是永久授权,EXPIRED_DATE 列值是 NULL,AUTHORIZED_CUSTOMER 是用户名称SELECT * ...
国产数据库 达梦数据库教程(9)达梦数据库定时备份配置




一、达梦数据库备份管理达梦数据库通过自带的一些函数以及动态视图可以实现定期物理备份、清理历史备份集等自动化操作,不需要再额外配置操作系统的计划任务。如果是需要自动化逻辑备份的话,则需要使用dexp结合...

国产数据库 达梦数据库教程(8)达梦数据库物理备份与还原
一、达梦数据库物理备份介绍物理备份是指直接对数据库底层物理文件进行复制的备份方式,比如数据文件、控制文件、日志文件等。由于物理备份不是通过SQL语句来对数据进行导出和还原,所以整体速度非常快,适合对数...

国产数据库 达梦数据库教程(7)达梦数据库逻辑备份与还原
一、达梦数据库逻辑备份1、逻辑备份介绍数据库逻辑备份是指将数据库中的数据和结构以逻辑形式导出的备份方式,备份的是数据的逻辑表示而不是物理文件本身。由于备份出来的文件都是SQL语句,所以非常适合跨平台迁...
文章评论