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

达梦数据库--管理表空间

原创 2021-09-18
1543

规划数据库结构时需要考虑如何管理数据库中的相关文件,每个表空间存储什么数据,在表空间中创建多少个、多大的数据文件,以及数据文件存储的位置等。

表空间的管理操作需要 DM 数据库服务器处于 OPEN 状态下。

1、创建表空间

创建表空间时需要指定表空间的名称和拥有的数据文件列表。
----创建名为 bookshop 的表空间,拥有 2 个数据文件,每个数据文件的大小为 10M
create tablespace bookshop datafile
‘/dm8/data/DAMENG/bookshop1.dbf’ size 10,
‘/dm8/data/DAMENG/bookshop2.dbf’ size 10;

理论上最多允许有 65535 个表空间,但用户允许创建的表空间 ID 取值范围为 0 ~ 32767,超过 32767 的只允许系统使用。
表空间的 ID 由系统自动分配,ID 不能重复使用,即使删除掉已有表空间,其 ID 也无法使用。

创建表空间时,可以指定数据文件是否可以扩展,每次扩展的空间大小以及可扩展到的最大空间大小。
----创建名为 shop 的表空间,可自动扩展,每次扩展 10M,最大可扩展到 100M
create tablespace shop datafile ‘/dm8/data/DAMENG/shop1.dbf’ size 32 autoextend on next 10 maxsize 100;

2、扩展表空间

表空间通过数据文件来扩展,表空间的大小等于构成表空间的所有数据文件的大小之和。
扩展表空间可以通过添加新的数据文件或扩展已有数据文件来完成。

添加的数据文件大小最小为 4096页大小,如页大小为 8K,则可添加的文件最小为 40968K=32M。
一个表空间中,数据文件和镜像文件一起不能超过 256 个。
----在 bookshop 表空间中添加大小为 64M 的数据文件
alter tablespace bookshop add datafile ‘/dm8/data/DAMENG/bookshop3.dbf’ size 64;

----在 shop 表空间中添加不可扩展的数据文件
alter tablespace shop add datafile ‘/dm8/data/DAMENG/shop2.dbf’ size 32 autoextend off;

可以扩展用户表空间中已存在的数据文件大小
----扩展 bookshop 变空间中数据文件 bookshop1.dbf 大小至 20M
alter tablespace bookshop resize datafile ‘/dm8/data/DAMENG/bookshop1.dbf’ to 20;

----修改已有数据文件的扩展属性
alter tablespace shop datafile ‘/dm8/data/DAMENG/shop2.dbf’ autoextend on;

3、删除表空间

只可以删除用户创建的表空间并且只能删除未使用过的表空间。
删除表空间时会删除其拥有的所有数据文件。

----删除 bookshop 表空间
drop tablespace bookshop;

4、修改表空间名和数据文件路径

可修改已存在的由用户创建的表空间的名称。

----修改 bookshop 表空间名为 books
alter tablespace bookshop rename to books;

----可以修改用户表空间中已存在的数据文件的路径,待修改的数据文件所在表空间必须处于脱机状态。
alter tablespace bookshop rename datafile ‘/dm8/data/DAMENG/bookshop2.dbf’ to ‘/dm8/data/bookshop2.dbf’;

5、修改表空间状态

用户表空间有联机和脱机两种状态。
系统表空间、回滚表空间、临时文件表空间不允许脱机。

设置表空间状态为脱机状态时,如果该表空间有未提交的事务,则脱机失败报错。
脱机后可对表空间的数据进行备份。

----修改 bookshop 表空间状态为脱机
alter tablespace bookshop offline;

----修改 bookshop 表空间状态为联机
alter tablespace bookshop online;

6、修改表空间中数据缓冲区

用户表空间可以切换使用不同的数据缓冲区,有 NORMAL 和 KEEP。
表空间的数据缓冲区修改成功后,并不会立即生效,需要服务器重启。
缓冲区名 KEEP 是达梦的保留关键字,使用时必须加双引号。

----将 bookshop 表空间绑定到 KEEP 缓冲区
alter tablespace bookshop cache=‘KEEP’;

7、查询表空间与数据文件对应关系

通过查询动态视图 VTABLESPACE 可以得到系统中所有表空间的信息。 通过查询动态视图 VDATAFILE 可以得到系统中所有数据文件的信息。
两个视图以表空间 ID 为连接条件,可以得到表空间上对应的数据文件。

select ts.name, df.path
from vtablespacets,vtablespace ts, vdatafile df
where ts.id=df.group_id;

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

评论