DM8表空间管理

简介: DM8表空间管理

一、表空间类型

HMAN:HUGE表(列存储表)的默认表空间

  • MAIN:用户默认表空间,创建用户时,没有指定表空间,则使用MAIN表空间
  • ROLL:回滚表空间,存放undo信息。INSERT、UPDATE、DELETE都会产生undo信息
  • SYSTEM:系统表空间,存放的是数据字典信息,包含表定义、视图定义、用户权限等
  • TEMP:临时表空间,用于存放临时表数据、索引、大量数据排序等产生的数据

二、操作表空间

命令行方式

查看表空间

select * from dba_tablespaces;

查看表空间存放地址

select * from dba_data_files;

创建表空间

创建规则:

create tablespace 表空间名 datafile '数据文件路径' SIZE 数据文件大小(单位为mb);

创建一个名叫TEST的表空间,文件大小为50mb,存储C:\dmdbms\data\TEST\TEST.DBF

create tablespace TEST datafile 'C:\dmdbms\data\TEST\TEST.DBF' SIZE 50;

修改表空间大小

创建规则:

alter tablespace 表空间名 resize datafile '数据文件路径' to 数据文件大小(单位为mb);

修改TEST表空间数据文件大小为60mb(初始大小为32MB)

alter tablespace TEST resize datafile 'C:\dmdbms\data\TEST\TEST.DBF' to 60;

修改表空间开启自动增长,增长步长,最大表空间
规则如下:

alter tablespace 表空间名 datafile '数据文件路径' autoextend on next 增长步长 maxsize 文件最大值

修改表空间开启自动增长,增长步长为3mb,最大表空间为70mb

alter tablespace TEST datafile 'C:\dmdbms\data\TEST\TEST.DBF' autoextend on next 3 maxsize 70;

增加表空间下的数据文件

规则如下:

alter tablespace 表空间名 add datafile '数据文件路径' size 数据文件大小(单位为mb);

在TEST表空间下添加 TEST\TEST_1.DBF 数据文件大小为60mb

alter tablespace TEST add datafile 'C:\dmdbms\data\TEST\TEST_1.DBF' size 60;

修改表空间名称

修改规则:

alter tablespace 修改前表空间名 rename to 修改后表空间名;

将TEST表空间名称修改为TEST1

alter tablespace TEST rename to TEST1;

删除表空间

用户自定义的表空间可以删除和脱机,系统定义的表空间不能脱机和删除
删除后表空间下的数据文件也会级联删除
删除规则:

drop tablesapce 表空间名;

删除TEST1表空间

drop tablespace "TEST1";

三、 表空间迁移

迁移时注意:新的表空间路径,必须是由安装数据库的用户进行创建,或者把这个文件夹授予数据库安装用户读写权限,否则会因权限问题报数据库文件路径错误

规则如下:

1.先将表空间离线:
alter tablespace 表空间名 offline;

2.重命名数据文件名,并迁移:
alter tablespace 表空间名 rename datafile '重命名的数据文件名' to '路径';

3.将表空间上线:
alter tablespace 表空间名 online;

创建USER1和USER2这两个表空间,将USER1表空间迁移到USER2的表空间中

alter tablespace USER1 offline;
alter tablespace USER1 rename datafile 'USER2.DBF' to 'C:\dmdbms\data\TEST\USER2.DBF';
alter tablespace USER2 online;

务必注意,后面的文件夹路径必须是由安装数据库的 用户 创建的,否则会因权限问题报数据库文件路径错误


四、 temp表空间

查询temp表空间参数,达梦数据库启动的时候会根据这几个参数来创建或重建temp表空间

打开DIsql:

select name,value,type from v$parameter where name like 'TEMP%';
  • TEMP_PATH:temp表空间的路径
  • TEMP_SIZE:temp表空间的初始值,单位为MB
  • TEMP_SPACE_LIMIT:temp表空间的空间限制,0表示不限制

修改TEMP表空间大小,重启后依旧生效

lter system set 'TEMP_SIZE'=64 spfile;

---

# 总结
更多技术文档请参考达梦官网技术文档:
[达梦技术文档](https://eco.dameng.com/document/dm/zh-cn/start/dm-create-tablespace.html)
相关文章
|
6月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
187 2
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
98 1
|
6月前
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
62 0
|
存储 关系型数据库 数据库
postgres表空间和os的文件的对应关系
postgres 自带了两个表空间,pg_default, pg_global
|
Oracle 关系型数据库 数据库
Oracle 快速创建 N 个表空间数据文件
Oracle 数据库是由无数个表空间组成,表空间是由无数个数据文件组成,数据文件存放在磁盘中。
|
Oracle 大数据 关系型数据库
|
Oracle 关系型数据库 索引
|
存储 关系型数据库 数据库管理
|
数据库 数据库管理 SQL