6-表空间
概念
数据库的所有对象在逻辑上都存放在某个表空间中,而物理上都存储在所属表空间的数据文件中
一个表空间可以由一个或多个数据文件组成
扩展名.DBF
HUGE数据文件不同于一般数据文件,其扩展名为.DTA
- 普通表空间
- 混合表空间
HUGE表有专门的数据文件
MAIN表空间为混合表空间
表空间类别
- system表空间 SYSTEM.DBF DDL操作会修改SYSTEM表空间的数据
- ROLL回滚记录 几乎所有的数据库修改操作都会生成回滚记录ROLL.DBF 自动维护
- TEMP 临时表 临时数据 SORT HASH JOIN–>临时结果集 重启数据丢失 TEMP.DBF 不支持物理备份还原
- MAIN 混合表空间 创建用户时没有指定表空间系统会默认MAIN为该用户的表空间 MAIN.DBF HMAIN目录
- 自定义表空间
6.1创建表空间
命令行:
SQL> create tablespace dm DATAFILE '/dm/dmdbms/data/DAMENG/dm01.dbf' size 32
DMmanager图形化界面创建

6.2扩展表空间
6.2.1增加新的文件来拓展表空间
命令行模式:
ALTER tablespace DM ADD DATAFILE '/dm/dmdbms/data/DAMENG/dm02.dbf' SIZE 32;
图形化界面

6.2.2 拓展现有数据文件的大小
命令行模式
ALTER TABLESPACE DM RESIZE DATAFILE '/dm/dmdbms/data/DAMENG/dm01.dbf' TO 64;
图形化界面

6.3命令行查看DM表空间
SQL> SELECT TABLESPACE_NAME,FILE_ID,BYTES/1024/1023 AS "size",FILE_NAME
2 from SYS.DBA_DATA_FILES
3 WHERE TABLESPACE_NAME='DM';
行号 TABLESPACE_NAME FILE_ID size
---------- --------------- ----------- --------------------
FILE_NAME
-------------------------------
1 DM 1 32
/dm/dmdbms/data/DAMENG/dm02.dbf
2 DM 0 64
/dm/dmdbms/data/DAMENG/dm01.dbf
已用时间: 10.080(毫秒). 执行号:801.
6.4数据文件开启自动扩展
例:每次扩展10M,最大可扩展到200M
SQL> ALTER TABLESPACE DM DATAFILE '/dm/dmdbms/data/DAMENG/dm01.dbf' AUTOEXTEND ON NEXT 10 MAXSIZE 200;

6.5 rename
6.5.1 重命名表空间
SQL> ALTER TABLESPACE DM RENAME TO cndba;

6.5.2移动数据文件rename实现物理上的移动
注意:表空间必须要在脱机状态下
SQL> alter tablespace cndba offline; //脱机
操作已执行
已用时间: 10.643(毫秒). 执行号:802.
SQL> alter tablespace cndba rename datafile '/dm/dmdbms/data/DAMENG/dm01.dbf' to '/dm/dmdbms/data/cndba/dm01.dbf';
操作已执行
已用时间: 182.246(毫秒). 执行号:803.
SQL> host
[dmdba@study ~]$ cd /dm/dmdbms/data/
[dmdba@study data]$ ls
cndba DAMENG
[dmdba@study data]$ cd cndba/
[dmdba@study cndba]$ ls
bak dm.ctl HMAIN TEMP.DBF
cndba01.log dm.ini MAIN.DBF trace
cndba02.log dminit20240312112822.log ROLL.DBF
ctl_bak dminit20240312113628.log sqllog.ini
dm01.dbf dm_service.prikey SYSTEM.DBF
[dmdba@study cndba]$

SQL> alter tablespace cndba online;//开机状态
操作已执行
已用时间: 5.472(毫秒). 执行号:804.
SQL>
6.6删除表空间
只可以删除用户创建的表空间并且只能删除未使用过的表空间 删除表空间会删除其拥有的所有的数据文件
SQL> drop tablespace cndba;
操作已执行
已用时间: 23.757(毫秒). 执行号:805.
SQL>
6.7查看所有表空间
SQL> select * from dba_tablespaces;
6.8查看表空间所有文件路径
SQL> select * from dba_data_files;
6.9 temp表空间
查询temp表空间参数,达梦数据库启动的时候会根据这几个参数来创建或重建temp表空间
SQL> select name,value,type from v$parameter where name like 'TEMP%';
行号 NAME VALUE
---------- ---------------- ----------------------
TYPE
---------
1 TEMP_PATH /dm/dmdbms/data/DAMENG
READ ONLY
2 TEMP_SIZE 1024
IN FILE
3 TEMP_SPACE_LIMIT 102400
SYS
已用时间: 13.048(毫秒). 执行号:764.
TEMP_PATH:temp表空间的路径
TEMP_SIZE:temp表空间的初始值,单位为MB
TEMP_SPACE_LIMIT:temp表空间的空间限制,0表示不限制
修改temp的大小
SQL> alter system set 'TEMP_SIZE'=64 spfile;
DMSQL 过程已成功完成
已用时间: 23.655(毫秒). 执行号:765.
[dmdba@study ~]$ cat /dm/dmdbms/data/DAMENG/dm.ini | grep TEMP_SIZE
TEMP_SIZE = 64 #temporary file size in Megabytes
本文详细介绍了DM数据库管理系统中的表空间概念、不同类型、创建、扩展、查看、重命名、删除以及temp表空间的相关操作,包括SQL命令和图形化界面的使用方法。
2695

被折叠的 条评论
为什么被折叠?



