Seal^_^头像
关注
DM表空间深度解析:掌握达梦数据库存储架构与核心管理封面图

DM表空间深度解析:掌握达梦数据库存储架构与核心管理

一、DM表空间基础概念:理解达梦数据库存储核心

1.1 表空间核心概念:逻辑与物理的映射

DM表空间是达梦数据库中最大的逻辑存储单元,其存储结构分为逻辑与物理两层。逻辑层由表空间、段、区和页构成;物理层则对应磁盘上的数据文件。在DM数据库中,所有数据均存储于表空间内,表空间在逻辑上由段组成,段由区组成,区由连续的页组成。页是DM数据库中最小的数据单元,其大小在初始化时指定,默认为8KB。

物理映射

DM数据库逻辑结构

DM表空间

段 Segment

区 Extent

页 Page

磁盘数据文件 .DBF

1.2 默认表空间解析:系统自带表空间的作用

达梦数据库初始化后自动创建数个核心DM表空间,职责各异:

  1. SYSTEM表空间:存放数据字典信息(如表、视图定义),禁止存放用户业务数据。
  2. ROLL表空间:存放事务回滚记录,保障DML操作的原子性与一致性。
  3. MAIN表空间:默认用户表空间,未显式指定表空间时,用户数据存放于此。
  4. TEMP表空间:存放排序、分组等操作的中间结果,内存不足时落盘使用。
  5. HMAIN表空间:存放大字段数据(如TEXT、IMAGE等)。

1.3 存储层次架构:从表空间到数据文件

DM表空间的存储采用层级映射设计。一个DM表空间可对应多个物理数据文件,但单个数据文件仅归属唯一表空间。当空间耗尽时,可通过增加数据文件或扩展现有文件实现扩容。数据文件扩展名通常为.DBF,大小以MB或GB为单位。掌握这种逻辑到物理的映射,是进行DM表空间高效管理的前提。

二、DM表空间核心管理:创建与扩展实战操作

2.1 创建自定义表空间:按业务规划存储

生产环境中为隔离业务数据,DBA需创建独立DM表空间。步骤如下:

  1. 确定表空间名称与数据文件路径:规划表空间名为BUSINESS_TS,路径为/dmdata/data/DAMENG/BUSINESS01.DBF。
  2. 执行基础建表语句:使用CREATE TABLESPACE创建初始大小128MB的表空间。
CREATE TABLESPACE BUSINESS_TS DATAFILE '/dmdata/data/DAMENG/BUSINESS01.DBF' SIZE 128;
  1. 启用自动扩展属性:为防止空间写满,开启自动扩展并设上限为10240MB。
CREATE TABLESPACE BUSINESS_TS DATAFILE '/dmdata/data/DAMENG/BUSINESS01.DBF' SIZE 128 AUTOEXTEND ON NEXT 10 MAXSIZE 10240;

2.2 表空间扩展操作:应对数据增长

业务数据激增导致DM表空间容量触顶时,需执行扩展操作:

  1. 扩展现有数据文件大小:通过ALTER TABLESPACE修改SIZE参数至256MB。
ALTER TABLESPACE BUSINESS_TS RESIZE DATAFILE '/dmdata/data/DAMENG/BUSINESS01.DBF' TO 256;
  1. 增加新的数据文件:单文件过大时推荐添加新文件。
ALTER TABLESPACE BUSINESS_TS ADD DATAFILE '/dmdata/data/DAMENG/BUSINESS02.DBF' SIZE 128;
  1. 验证扩展结果:查询DBA_DATA_FILES视图确认文件大小更新。
SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MB FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'BUSINESS_TS';

2.3 修改表空间状态:维护与可用性控制

DM表空间具备ONLINE与OFFLINE状态,部分维护操作需在脱机状态下进行:

  1. 表空间脱机操作:执行ALTER语句将状态切换为OFFLINE。
ALTER TABLESPACE BUSINESS_TS OFFLINE;
  1. 表空间联机操作:维护完成后恢复ONLINE状态供业务读写。
ALTER TABLESPACE BUSINESS_TS ONLINE;
维护需求不可读写维护完成

表空间ONLINE

执行ALTER OFFLINE

表空间OFFLINE

业务暂时中断

执行ALTER ONLINE

三、DM表空间高级维护:优化与安全策略

3.1 表空间数据文件迁移:存储路径优化

底层存储架构变更时,需迁移DM表空间数据文件路径:

  1. 将目标表空间置为OFFLINE状态。
ALTER TABLESPACE BUSINESS_TS OFFLINE;
  1. 修改数据文件物理路径:使用ALTER语句重定向至新路径。
ALTER TABLESPACE BUSINESS_TS RENAME DATAFILE '/dmdata/data/DAMENG/BUSINESS01.DBF' TO '/dmnewdata/data/DAMENG/BUSINESS01.DBF';
  1. 将表空间重新置为ONLINE状态以恢复业务。
ALTER TABLESPACE BUSINESS_TS ONLINE;

3.2 表空间监控与告警:容量与性能把控

定期监控DM表空间使用率是预防业务中断的关键手段:

  1. 查询表空间总容量与使用率:联合DBA_DATA_FILES与DBA_FREE_SPACE视图获取精确数据。
SELECT F.TABLESPACE_NAME, T.TOTAL_SPACE/1024/1024 AS TOTAL_MB, (T.TOTAL_SPACE-F.FREE_SPACE)/1024/1024 AS USED_MB, ROUND((1-F.FREE_SPACE/T.TOTAL_SPACE)*100,2) AS USED_PERCENT FROM (SELECT TABLESPACE_NAME, SUM(BYTES) AS FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT TABLESPACE_NAME, SUM(BYTES) AS TOTAL_SPACE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) T WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME;
  1. 配置定时巡检任务:当USED_PERCENT超过80%时触发短信或邮件告警。

3.3 表空间删除与清理:资源回收规范

业务下线后需清理对应DM表空间释放磁盘资源:

  1. 确认无活动对象:核查无业务表或索引依赖该表空间。
  2. 删除表空间及物理文件:执行DROP语句连同.DBF文件一并清除。
DROP TABLESPACE BUSINESS_TS INCLUDING CONTENTS AND DATAFILES;
  1. 验证磁盘释放结果:在操作系统层确认可用空间已增加。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_41840843/article/details/163722308

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--