一、达梦数据库表空间介绍

数据库的物理结构:文件系统----数据文件
数据库的逻辑结构:数据库--表空间(一个或多个数据文件)--段--簇--页
注:一个表空间只属于一个数据库,表空间有多个文件,一个表空间有多个段,一个段有多个簇,一个簇有多个连续页
达梦数据库学习笔记(二):表空间管理_第1张图片
DM8中有5个预定义表空间,分别为
① SYSTEM 系统表空间,存放数据字典信息
② ROLL 回滚表空间,存放的回滚数据,支持MVCC(事务多版本机制)
③ TEMP 临时表空间,存在临时数据
④ MAIN main表空间,如果用户创建数据库对象时不指定表空间,则会默认存放在main中
⑤ HMAIN Hmain表空间存放的是huge table的信息

二、查询表空间

查询表空间
SQL> select tablespace_name from user_tablespaces;
达梦数据库学习笔记(二):表空间管理_第2张图片
查询表空间及表空间状态,0代表连机状态,1代表脱机状态
SQL> select tablespace_name,status from user_tablespaces;
达梦数据库学习笔记(二):表空间管理_第3张图片
查看表空间的数据文件
SQL> select FILE_NAME,STATUS,TABLESPACE_NAME from dba_data_files;
达梦数据库学习笔记(二):表空间管理_第4张图片

三、表空间的创建与删除

(1)表空间创建

1)仅指定数据文件路劲和初始大小创建,单位为MB
SQL> create tablespace "TBS" datafile '/dm8/data/DAMENG/TBS01.DBF' size 32;
注:
create tablespace "TBS" 创建表空间TBS
datafile '/dm8/data/DAMENG/TBS01.DBF' 指定数据文件路径
size 32 表空间大小为32M

2)创建两个数据文件,并自动扩展
SQL>create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size 32 autoextend on next 1 maxsize 1024, '/dm8/data/DAMENG/TEST02.DBF' size 32 autoextend on next 1 maxsize 1024 CACHE = NORMAL;
注:
autoextend on next 1 数据文件自动扩展,每次扩展1M
maxsize 1024 表空间最大1024M
CACHE = NORMAL 数据页的缓冲池名称

(2)表空间删除

SQL> drop tablespaceTBS
注:表空间有数据不允许删除

四、表空间状态

(1)脱机状态

SQL>alter tablespace TBS offline;
达梦数据库学习笔记(二):表空间管理_第5张图片

(2)联机状态

SQL> alter tablespace TBS online;
达梦数据库学习笔记(二):表空间管理_第6张图片

五、维护表空间

(1)增加表空间数据文件

SQL> alter tablespace TBS add datafile '/dm8/data/PROD/TBS03.DBF' size 128;

达梦数据库学习笔记(二):表空间管理_第7张图片
(2)更换数据文件存储位置
更换数据文件的存储位置要先让表空间属于脱机状态

SQL>alter tablespace TBS offline;
SQL>alter tablespace TBS rename datafile '/dm8/data/PROD/TBS03.DBF' to '/dm8/TBS03.dbf';
SQL> alter tablespace TBS online;

达梦数据库学习笔记(二):表空间管理_第8张图片