达梦数据库表空间创建和管理

概述

本文将介绍在达梦数据库如何创建和管理表空间。

1.创建表空间

1.1表空间个数限制

理论上最多允许有65535个表空间,但用户允许创建的表空间 ID 取值范围为0~32767,

超过 32767 的只允许系统使用,ID 由系统自动分配,ID不能重复使用,即使删除掉已有表空间,也无法重复使用已用ID号,也就是说只要创建32768次表空间后,用户将无法再创建表空间。

1.2 命令行方式创建表空间

用SYSDBA用户登录数据库,创建表空间【LCPTTBS】,具体命令如下:

bash 复制代码
[dmdba@owumvyu4iuuzaxxp-0004 ~]$ disql SYSDBA/SYSDBA@127.0.0.1:5236
服务器[127.0.0.1:5236]:处于普通打开状态
登录使用时间 : 1.871(ms)
disql V8
SQL> create tablespace "LCPTTBS" datafile '/dm8/data/LCPTTBS01.DBF' size 64 autoextend on next 1 maxsize 1024, '/dm8/data/LCPTTBS02.DBF' size 64 autoextend on next 1 maxsize 1024 CACHE = NORMAL;
操作已执行
已用时间: 198.361(毫秒). 执行号:35084800.
SQL>

通过sql命令查看是否成功创建了表空间【LCPTTBS】:

bash 复制代码
SQL> select a.name,b.id,b.path from v$tablespace a, v$datafile b where a.id=b.group_id;

行号     NAME     ID          PATH
---------- -------- ----------- -----------------------------
1          LCPTTBS  1           /dm8/data/LCPTTBS02.DBF
2          TEST     0           /dm8/data/TEST01.DBF
3          TEST     1           /dm8/data/TEST02.DBF
4          BOOKSHOP 0           /dm8/data/DAMENG/BOOKSHOP.DBF
5          SYSTEM   0           /dm8/data/DAMENG/SYSTEM.DBF
6          DMHR     0           /dm8/data/DAMENG/DMHR.DBF
7          TEMP     0           /dm8/data/DAMENG/TEMP.DBF
8          ROLL     0           /dm8/data/DAMENG/ROLL.DBF
9          MAIN     0           /dm8/data/DAMENG/MAIN.DBF
10         LCPTTBS  0           /dm8/data/LCPTTBS01.DBF

10 rows got

已用时间: 1.674(毫秒). 执行号:35084801.

通过上面SQL语句,查看已经成功创建了表空间【LCPTTBS】有两个数据文件【LCPTTBS01.DBF】和【LCPTTBS02.DBF】。

1.3 图形方式创建表空间

使用SYSDBA用户登录数据库,用鼠标点击右键,选择【新建表空间】:

输入表空间名字【EBANKTBS】:

点击【添加】按钮:

设置表空间选项如【文件路径】、【文件大小】等:

查看表空间创建语句和点击【确定】:

查看EBANKTBS表空间创建结果,已经成功创建:

2.管理表空间

2.1 修改表空间名字

修改表空间EBANKTBS名字为DXHTBS:

bash 复制代码
SQL> ALTER TABLESPACE EBNKTBS RENAME TO DXHTBS;
操作已执行
已用时间: 14.709(毫秒). 执行号:35143700.
SQL>

2.2 修改表空间状态

用户表空间有联机和脱机两种状态。

设置表空间状态为脱机状态时,如果该表空间有未提交的事务,则脱机失败报错。脱机后可对表空间的数据进行备份。

修改DXHTBS表空间状态为脱机:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS OFFLINE;
操作已执行
已用时间: 111.804(毫秒). 执行号:35143701.
SQL>

修改DXHTBS表空间状态为联机:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS ONLINE;
操作已执行
已用时间: 12.368(毫秒). 执行号:35143702.
SQL>

注意:

系统(SYSTEM)表空间、回滚(ROLL)表空间、重做日志表空间(RLOG)和临时(TEMP)表空间不允许脱机。

2.3 修改表空间数据缓冲区

用户表空间可以切换使用的数据缓冲区。

可以使用的数据缓冲区有 NORMAL 和 KEEP。表空间修改成功后,并不会立即生效,而是需要服务器重启。缓冲池名 KEEP 是达梦的保留关键字,使用时必须加双引号。

将DXHTBS表空间绑定到KEEP缓冲区:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS CACHE= "KEEP";
操作已执行
已用时间: 17.763(毫秒). 执行号:35191900.
SQL>

注意:

系统(SYSTEM)表空间、回滚(ROLL)表空间、重做日志表空间(RLOG)和临时(TEMP)表空间不允许修改数据缓冲区。

3.管理数据文件

3.1 添加表空间数据文件

举例,给表空间DXHTBS 添加数据文件:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS ADD DATAFILE '/dm8/data/DXHTBS02.DBF' SIZE 64;
操作已执行
已用时间: 19.313(毫秒). 执行号:35191902.
SQL>

一个表空间中,数据文件和镜像文件一起不能超过256个。例如,如果创建表空间的时候已经指定了1个数据文件,那么添加数据文件的时候,最多只能添加255个。

3.2 扩展数据文件大小

将表空间DXHTBS的DXHTBS02.DBF数据文件扩展至128M:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS RESIZE DATAFILE '/dm8/data/DXHTBS02.DBF' TO 128;
操作已执行
已用时间: 7.903(毫秒). 执行号:35191903.
SQL>

3.4 修改表空间数据库文件路径

将表空间DXHTBS的DXHTBS02.DBF文件路径进行修改:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS OFFLINE;
操作已执行
已用时间: 31.408(毫秒). 执行号:35191904.
SQL> ALTER TABLESPACE DXHTBS RENAME DATAFILE '/dm8/data/DXHTBS02.DBF' TO '/dm8/data/DAMENG/DXHTBS02.DBF';
操作已执行
已用时间: 149.623(毫秒). 执行号:35191905.
SQL> ALTER TABLESPACE DXHTBS ONLINE;
操作已执行
已用时间: 10.537(毫秒). 执行号:35191906.
SQL>

3.5 修改数据文件属性

修改表空间DXHTBS的DXHTBS02.DBF自动扩展最大至256M:

bash 复制代码
SQL> ALTER TABLESPACE DXHTBS  DATAFILE '/dm8/data/DAMENG/DXHTBS02.DBF' AUTOEXTEND ON NEXT 10 MAXSIZE 256;
操作已执行
已用时间: 511.962(毫秒). 执行号:35191910.
SQL>

总结

本文首先介绍了表空间限制和命令行及图形两种方式创建表空间操作例子;

其次介绍了表空间管理操作例子;

最后介绍了表空间管理数据文件操作例子;

关于达梦数据库更多学习内容,欢迎访问达梦社区:
https://eco.dameng.com

相关推荐
FIN技术铺2 小时前
Redis集群模式之Redis Sentinel vs. Redis Cluster
数据库·redis·sentinel
CodingBrother4 小时前
MySQL 中的 `IN`、`EXISTS` 区别与性能分析
数据库·mysql
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
小小不董4 小时前
Oracle OCP认证考试考点详解082系列16
linux·运维·服务器·数据库·oracle·dba
甄臻9244 小时前
Windows下mysql数据库备份策略
数据库·mysql
内蒙深海大鲨鱼5 小时前
qt之ui开发
数据库·qt·ui
不爱学习的YY酱5 小时前
【计网不挂科】计算机网络第一章< 概述 >习题库(含答案)
java·数据库·计算机网络
这样の我5 小时前
hbase集成phoenix
大数据·数据库·hbase
安静读书6 小时前
MongoDB 详解:深入理解与探索
数据库·mongodb
我有一颗薄荷糖6 小时前
Qt--命令行终端程序开发
开发语言·数据库·qt