暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

DM8表空间管理

1、概述

表空间由一个或者多个数据文件组成。DM 数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。在创建 DM 数据库时,会自动创建 4 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN 表空间和 TEMP 表空间。

  • SYSTEM 表空间:存放了有关 DM 数据库的字典信息,用户不能在 SYSTEM 表空间创建表和索引。
  • ROLL 表空间:回滚表空间,存放回滚页,数据库中的 DML 操作对应都会生成 redo 和 undo,undo 信息放入 ROLL 表空间对应的数据文件,redo 信息写入联机日志文件,用于保证数据的一致性。ROLL 回滚段数据包含 Active、unexpired、expired 三种状态。
  • MAIN 表空间:用户默认表空间,在创建用户时,如果未指定用户的默认表空间,则 MAIN 为用户的默认表空间。相当于 Oracle 的 USERS 表空间。
  • TEMP 表空间:存放临时表数据、临时结果集等,当大量的数据排序或创建索引时将占用临时表空间。

2、表空间管理

2.1、创建表空间

DM 数据文件大小,最大值不能低于页大小的 4096 倍(如果页大小是 8K,最小值将不低于 32M),最大值为页大小的 2 的 31 次方-1(如果页大小是 8K,最大值为 16T-1)。

CREATE TABLESPACE SHEN DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' SIZE 35 AUTOEXTEND OFF;

请注意,这里指定的35单位是M,此处不能写35M,否则报错语法不支持,也不支持写35G。

创建一个30M的表空间会报错,如下:

SQL> CREATE TABLESPACE TBS01 DATAFILE '/dm8/data/DAMENG/TBS01.DBF' SIZE 30 AUTOEXTEND OFF;
CREATE TABLESPACE TBS01 DATAFILE '/dm8/data/DAMENG/TBS01.DBF' SIZE 30 AUTOEXTEND OFF;
第1 行附近出现错误[-2410]:数据文件[/dm8/data/DAMENG/TBS01.DBF]大小无效.
已用时间: 0.601(毫秒). 执行号:0.
SQL>

2.2、表空间扩容

  • RESIZE数据文件
SQL> ALTER TABLESPACE SHEN RESIZE DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' TO 50;
操作已执行
已用时间: 14.919(毫秒). 执行号:1800.

注意:RESIZE只能改大,不能改下。

SQL> ALTER TABLESPACE TBS_SHEN RESIZE DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' TO 40;
ALTER TABLESPACE TBS_SHEN RESIZE DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' TO 40;
[-2410]:数据文件[/dm8/data/DAMENG/SHEN01.DBF]大小无效.
已用时间: 2.567(毫秒). 执行号:0.
SQL> ALTER TABLESPACE TBS_SHEN RESIZE DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' TO 60;
操作已执行
已用时间: 4.507(毫秒). 执行号:1805.
SQL>
  • 添加数据文件
SQL> ALTER TABLESPACE SHEN ADD DATAFILE '/dm8/data/DAMENG/SHEN02.DBF' SIZE 35 AUTOEXTEND OFF;
操作已执行
已用时间: 20.068(毫秒). 执行号:1801.

2.3、表空间脱机

注意:SYSTEM、ROLL、TEMP 表空间不能脱机。
表空间脱机后,该表空间中的数据将不能读写。

ALTER TABLESPACE SHEN OFFLINE|ONLINE;

查看表空间状态
状态“1”表示脱机,状态“0”表示联机。

2.4、表空间重命名

DM 预定义表空间不支持重命名,自定义表空间支持重命名。

SQL> ALTER TABLESPACE MAIN RENAME TO TBS_MAIN;
ALTER TABLESPACE MAIN RENAME TO TBS_MAIN;
第1 行附近出现错误[-3415]:不能重命名表空间[MAIN].

已用时间: 0.266(毫秒). 执行号:0.
SQL> ALTER TABLESPACE SHEN RENAME TO TBS_SHEN;
操作已执行
已用时间: 4.971(毫秒). 执行号:1803.

2.5、更改表空间属性

ALTER TABLESPACE TBS_SHEN DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' AUTOEXTEND ON|OFF;
ALTER TABLESPACE TBS_SHEN DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' AUTOEXTEND ON NEXT 2 MAXSIZE 65;

2.6、迁移表空间数据文件

ALTER TABLESPACE TBS_SHEN OFFLINE;
ALTER TABLESPACE TBS_SHEN RENAME DATAFILE '/dm8/data/DAMENG/SHEN01.DBF' TO '/dm8/data/DAMENG/new/SHEN01.DBF';
ALTER TABLESPACE TBS_SHEN RENAME DATAFILE '/dm8/data/DAMENG/SHEN02.DBF' TO '/dm8/data/DAMENG/new/SHEN02.DBF';
ALTER TABLESPACE TBS_SHEN ONLINE;

2.7、删除表空间

DROP TABLESPACE TBS_SHEN;

操作完成后,数据文件也被删除。

3、表空间相关数据字典

select * from dba_tablespaces;
select * from DBA_DATA_FILES;
select * from v$tablespace;
select * from v$datafile;
select * from DBA_FREE_SPACE;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论