【DM8】6-表空间

本文详细介绍了DM数据库管理系统中的表空间概念、不同类型、创建、扩展、查看、重命名、删除以及temp表空间的相关操作,包括SQL命令和图形化界面的使用方法。

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
<think>嗯,用户现在想了解如何在达梦数据库DM8创建表空间。我需要先回忆一下DM8的相关文档知识,特别是关于表空间创建的部分。记得表空间数据库中用于存储数据文件,是逻辑结构和物理文件的映射。用户可能需要详细的步骤和语法示例。 首先,我应该确认创建表空间的语法结构。根据引用内容,创建表空间需要使用CREATE TABLESPACE语句,指定表空间名称、数据文件路径和大小,以及可能的扩展属性。比如初始大小、是否自动扩展、最大大小等参数。这些参数对用户来说可能很重要,因为它们影响表空间的存储管理。 然后,用户可能需要具体的示例来参考。例如,创建一个名为TS_DEMO的表空间,数据文件是'TS_DEMO.DBF',初始大小128M,自动扩展,每次扩展64M,最大到1024M。这样的示例可以帮助用户理解实际应用中的参数设置。 另外,用户可能还想知道如何修改表空间,比如调整数据文件的大小或添加新的数据文件。这部分内容也需要涵盖,因为实际使用中可能需要扩展存储空间。例如,使用ALTER TABLESPACE来修改现有表空间的配置。 可视化操作部分也是必要的,特别是对于习惯使用图形界面的用户。DM管理工具提供了创建表空间的界面,用户可以通过右键存储管理中的表空间节点,选择新建,然后填写相关信息。需要详细描述每一步的操作,比如输入名称、添加数据文件、设置参数等,并提醒注意事项,如路径正确性和权限问题。 还需要考虑用户可能遇到的问题,比如路径是否存在、权限是否足够、存储参数是否合理等。在注意事项中列出这些点,可以帮助用户避免常见错误。 最后,生成的相关问题需要覆盖用户可能进一步的需求,比如表空间的管理、性能优化、与用户的关系、备份恢复,以及与其他数据库如Oracle的区别。这些问题能够引导用户深入学习和解决实际应用中的问题。 总结一下,回答的结构应该包括语法说明、示例、可视化步骤、注意事项和相关问题。确保每一步都清晰,示例具体,注意事项实用,相关问题有针对性。这样用户不仅能学会创建表空间,还能处理后续的管理和优化问题。</think>### DM8数据库创建表空间教程 #### 一、创建表空间语法 达梦数据库使用`CREATE TABLESPACE`语句创建表空间,基本语法如下: ```sql CREATE TABLESPACE <表空间名> DATAFILE '<数据文件路径>' SIZE <文件大小> [ AUTOEXTEND ON [ NEXT <扩展大小> MAXSIZE <最大限制> ] ] [ STORAGE ( <存储参数> ) ]; ``` - **表空间名**:需符合标识符命名规范(长度不超过128字节) - **数据文件路径**:需包含完整路径和文件名,如`/dm8/data/DAMENG/TS_DEMO.DBF` - **AUTOEXTEND**:设置自动扩展策略,包含`NEXT`(每次扩展量)和`MAXSIZE`(最大文件限制) #### 二、操作示例 ##### 1. 基础表空间创建 ```sql CREATE TABLESPACE TS_DEMO DATAFILE '/dm8/data/DAMENG/TS_DEMO.DBF' SIZE 128 AUTOEXTEND ON NEXT 64 MAXSIZE 1024; ``` 此示例创建初始大小为128MB的表空间,当空间不足时每次自动扩展64MB,最大扩展到1024MB[^1]。 ##### 2. 多数据文件配置 ```sql CREATE TABLESPACE TS_MULTI DATAFILE '/dm8/data/DAMENG/TS_MULTI01.DBF' SIZE 100, '/dm8/data/DAMENG/TS_MULTI02.DBF' SIZE 200; ``` 支持通过逗号分隔创建多个数据文件,各文件可独立设置大小。 #### 三、可视化创建步骤 1. **打开DM管理工具**:连接目标数据库实例 2. **导航到存储管理**:右键点击"表空间"节点 → 选择"新建表空间" 3. **配置参数**: - 输入表空间名称(如`TS_VISUAL`) - 点击"添加"按钮创建数据文件 - 设置文件路径、大小及自动扩展参数 4. **完成创建**:点击"确定"后自动生成物理文件 #### 四、表空间管理 ```sql -- 修改表空间扩展参数 ALTER TABLESPACE TS_DEMO RESIZE DATAFILE '/dm8/data/DAMENG/TS_DEMO.DBF' TO 256; -- 添加新数据文件 ALTER TABLESPACE TS_DEMO ADD DATAFILE '/dm8/data/DAMENG/TS_DEMO02.DBF' SIZE 100; ``` #### 五、注意事项 1. **路径有效性**:确保数据文件路径存在且数据库服务有写入权限 2. **空间预分配**:初始大小建议根据业务数据量预估设置 3. **文件限制**:单个数据文件最大支持32TB(受操作系统限制) 4. **系统表空间**:`SYSTEM`、`ROLL`等系统表空间不可修改
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值