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

概述

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

1.创建表空间

1.1表空间个数限制

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

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

1.2 命令行方式创建表空间

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

bash 复制代码
[dmdba@owumvyu4iuuzaxxp-0004 ~]$ disql SYSDBA/[email protected]: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

相关推荐
孙同学_2 小时前
【MySQL】001.MySQL安装
数据库·mysql·adb
不剪发的Tony老师4 小时前
SQLite + Redis = Redka
数据库·redis·sqlite
樽酒ﻬق5 小时前
PostgreSQL、MariaDB和MySQL的异同及应用:企业级数据库选型指南
数据库·postgresql·mariadb
chat2tomorrow6 小时前
SQL2API是什么?SQL2API与BI为何对数据仓库至关重要?
数据库·数据仓库·低代码·bi·数据中台·sql2api
せいしゅん青春之我7 小时前
【MYSQL从入门到精通】数据库基础操作、数据类型
数据库·mysql
Miketutu7 小时前
Mysql -- 基础
数据库
Mcband7 小时前
MySQL 用 limit 影响性能的优化方案
数据库·mysql
✿ ༺ ོIT技术༻9 小时前
MySQL:事务的理解
数据库·mysql
DragonnAi9 小时前
猫咪如厕检测与分类识别系统系列【五】信息存储数据库改进+添加猫咪页面制作+猫咪躯体匹配算法架构更新
数据库·算法·分类
Arbori_2621510 小时前
oracle COUNT(1) 和 COUNT(*)
数据库·oracle