达梦数据库DM8-表空间管理
系列文章目录
第八章 达梦数据库DM8-表空间管理这里再放一个达梦云适配中心链接,里面的文档模块有很多官方教程,社区模块也可以查询或者提出各类使用问题
达梦云适配中心
本文环境
系统环境:
windows 7 sp1
软件镜像:
dm8_20201112_x86_rh7_64_ent_8.1.1.144.iso
1、达梦数据库表空间介绍及查看
表空间:是数据库的逻辑存储结构,在 DM 数据库中,表空间由一个或者多个数据文件组成。DM 数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。
在创建 DM 数据库时,会自动创建 5 个表空间:
System:数据字典信息和动态性能视图
Roll:数据库运行中的回滚记录。
Temp:临时表空间,存放临时数据,排序。
Hmain:huge 表空间。
Main:数据库默认的表空间。创建用户或者数据库对象时,没有指定表空间,就存放在默认表空间 Main 中。
查看表空间,可以通过DM管理工具查看,也可以通过SQL语句查看
select tablespace_name from dba_tablespaces;
select tablespace_name,file_name from dba_data_files;
2、达梦数据库表空间创建
2.1 使用DM管理工具创建
在DM管理工具的对象导航-表空间项,右键新建表空间,在表空间新建界面,如下图,我们新建名为TEST表空间,添加两个数据文件TEST01.dbf,TEST02.dbf,每个文件大小初始为128MB(表空间数据文件初始化大小最小受到页大小的限制)。打开自动扩充,每次扩充1M,最大扩充至1024MB。
2.2 使用SQL语句创建
我们也可以通过语句来创建,在DM管理工具的查询窗口,或者在Disql命令行工具中输入如下语句创建和2.1一样的TEST表空间。
create tablespace "TEST" datafile 'D:\dmdbms\data\DAMENG\TEST01.dbf' size 128 autoextend on next 1 maxsize 1024, 'D:\dmdbms\data\DAMENG\TEST02.dbf' size 128 autoextend on next 1 maxsize 1024 CACHE = NORMAL;
3、 表空间维护
3.1 表空间状态
脱机状态:表空间此时属于不可用状态,可以对表空间数据文件移动、表空间还原等操作。
Alter tablespace TEST offline;
联机状态:表空间处于使用状态,不能数据文件移动、表空间还原等操作。
Alter tablespace TEST online;
通过SQL语句查询表空间
select a.tablespace_name,a.status from dba_tablespaces a;
0 为联机状态
1 为脱机状态
注意:system、temp、roll 表空间不能脱机
3.1 表空间扩容
1、通过DM管理工具进行扩容
右键需要扩容的表空间,点击修改,进入修改界面,直接双击文件大小即可修改,最后点击确定保存即可生效。添加数据文件点击添加按钮即可。
2、通过SQL语句
resize 数据文件
alter TABLESPACE TEST RESIZE DATAFILE 'D:\dmdbms\data\DAMENG\TEST01.dbf' to 256;
添加数据文件
alter tablespace "TEST" add datafile 'D:\dmdbms\data\DAMENG\TEST03.dbf' size 128;
3.2 更换数据文件路径
1、表空间脱机
alter tablespace TEST OFFLINE;
2、更换路径
alter TABLESPACE TEST RENAME DATAFILE 'D:\dmdbms\data\DAMENG\TEST01.dbf' TO
'D:\dmdbms\data\TEST01.DBF';
alter TABLESPACE TEST RENAME DATAFILE 'D:\dmdbms\data\DAMENG\TEST02.dbf' TO
'D:\dmdbms\data\TEST02.DBF';
3、表空间联机
ALTER TABLESPACE TEST ONLINE;
执行成功后,刷新查看TEST表空间,可以看到数据文件路径已修改成功。
4、 表空间删除
通过工具,右键删除
或者通过SQL:
drop TABLESPACE TEST;
5、临时表空间
临时表空间TEMP:用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,TEMP表空间不能被删除。
select para_name,para_value from v$dm_ini where para_name like '%TEMP%';
TEMP_SIZE: TEMP临时表空间初始大小
TEMP_SPACE_LIMIT: TEMP临时表空间最大空间限制,0标示无限制
一般建议对TEMP临时表设置大小,及最大限制。
使用如下语句对其进行修改:(重启数据库后生效)
SP_SET_PARA_VALUE(2,'TEMP_SIZE', 1024);
SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT', 10240);
小结:一般建议一个应用用户一个表空间,以方便对用户模式下的对象进行统一管理。