达梦数据库表空间管理

达梦数据库的逻辑存储结构

达梦数据库的逻辑存储存储结构分为:页、簇、段、数据文件、表空间。

页: 是最小的逻辑单元, 是数据库最小的分配单位。 ( 默认 8k,(4k,8k,16k,32k),数据页包括 4 个部分: 页头控制信息, 数据, 空闲空间, 行偏移数组。
簇: 由磁盘上连续的页组成, 一个簇总是在一个数据文件中, 由 16 或是 32 个页组成。
段: 一组簇的集合, 是簇的上级逻辑单位, 一个段可以跨多个数据文件, 一个簇只能在一个数据文件中。
数据文件: 由一个或多个段组成。
表空间: 是一个或多个数据文件组成, 最多由 256 个数据文件。

页大小和簇大小可以在数据库的安装时进行配置。

查看数据库中的表空间

通过dba_tablespaces视图可以看到数据库中的所有表空间,BLOCK_SIZE就是占用的页数。BLOCK_SIZE*页大小(8K)就是表空间当前的大小,6400*8/1024=50, YY表空间的大小即为50M。

SQL> select tablespace_name,extent_management,block_size from dba_tablespaces;

行号     TABLESPACE_NAME EXTENT_MANAGEMENT BLOCK_SIZE
---------- --------------- ----------------- --------------------
1          SYSTEM          NULL              2944
2          ROLL            NULL              16384
3          TEMP            NULL              1280
4          MAIN            NULL              16384
5          BOOKSHOP        NULL              19200
6          DMHR            NULL              16384
7          TBS             NULL              32768
8          YY              NULL              6400
9          HMAIN           NULL              NULL

9 rows got

查看表空间中的数据文件

通过dba_data_files 视图可以看到每个表空间对应的数据文件,一个表空间可以有多个数文件,同时可以看到数据文件的大小,多个数据文件的情况数据文件大小累加就是表空间的大小。

SQL> select  tablespace_name,file_name,round(bytes/1024/1024) mb from dba_data_files order by 1,2;

行号     TABLESPACE_NAME FILE_NAME                   MB
---------- --------------- --------------------------- ---
1          BOOKSHOP        /dm8/data/PROD/BOOKSHOP.DBF 150
2          DMHR            /dm8/data/PROD/DMHR.DBF     128
3          MAIN            /dm8/data/PROD/MAIN.DBF     128
4          ROLL            /dm8/data/PROD/ROLL.DBF     128
5          SYSTEM          /dm8/data/PROD/SYSTEM.DBF   23
6          TBS             /dm8/data/PROD/TBS01.DBF    128
7          TBS             /dm8/data/PROD/TBS02.DBF    128
8          TEMP            /dm8/data/PROD/TEMP.DBF     10

8 rows got

段的管理

在数据库中一个段就是一个数据库对象,一张表、一个索引都是一个段。通过dba_segments 视图可以查看,每条记录时一个段,EXTENTS是段所使用的簇的数量,BLOCKS是占用的页数量。通过计算可以看到簇的大小为16,也就是一个簇中包含16个页。

SQL> select tablespace_NAME,segment_name,segment_type,extents,blocks from dba_segments where tablespace_name='MAIN';

行号     TABLESPACE_NAME SEGMENT_NAME     SEGMENT_TYPE EXTENTS              BLOCKS
---------- --------------- ---------------- ------------ -------------------- --------------------
1          MAIN            T_IDX06          INDEX        2                    32
2          MAIN            MINDEX$_1109_SEQ INDEX        2                    32
3          MAIN            MINDEX$_1109     INDEX        2                    32
4          MAIN            INDEX33555560    INDEX        2                    32
5          MAIN            INDEX33555555    INDEX        2                    32
6          MAIN            INDEX33555543    INDEX        2                    32
7          MAIN            INDEX33555539    INDEX        3                    48

创建表空间

SQL> create tablespace yy datafile '/dm8/data/PROD/yy1.DBF' size 50;
操作已执行
已用时间: 36.214(毫秒). 执行号:263967.
SQL>

修改数据文件大小

SQL> alter tablespace yy  datafile '/dm8/data/PROD/yy1'  autoextend on next 5 maxsize 100;
操作已执行
已用时间: 4.154(毫秒). 执行号:263922.
SQL>

为表空间增加数据文件

SQL> alter tablespace yy add datafile '/dm8/data/PROD/yy2' size 50;
操作已执行
已用时间: 5.892(毫秒). 执行号:263924.
SQL>

为数据文件改名

修改数据文件名,需要将表空间调整为离线。

SQL> ALTER TABLESPACE yy OFFLINE;
操作已执行
已用时间: 121.400(毫秒). 执行号:263925.
SQL> alter tablespace yy rename datafile '/dm8/data/PROD/yy2'  to '/dm8/data/PROD/yy2.dbf';
操作已执行
已用时间: 750.828(毫秒). 执行号:263926.
SQL> ALTER TABLESPACE yy ONLINE;
操作已执行
已用时间: 4.275(毫秒). 执行号:263927.
SQL>

修改表空间名称

SQL> ALTER TABLESPACE yy RENAME TO QQ;
操作已执行
已用时间: 46.915(毫秒). 执行号:263928.
SQL> select tablespace_name,extent_management from dba_tablespaces;

行号     TABLESPACE_NAME EXTENT_MANAGEMENT
---------- --------------- -----------------
1          SYSTEM          NULL
2          ROLL            NULL
3          TEMP            NULL
4          MAIN            NULL
5          BOOKSHOP        NULL
6          DMHR            NULL
7          TBS             NULL
8          QQ              NULL
9          HMAIN           NULL

9 rows got

已用时间: 0.622(毫秒). 执行号:263929.

达梦技术社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值