概述:
规划数据库结构时需要考虑如何管理数据库中的相关文件, 每个表空间存储什么数据,
在表空间中创建几个多大的数据文件,以及数据文件存储的位置等。以下介绍了表空间的管
理、数据文件的管理、重做日志文件的管理、回滚空间的管理和控制文件的管理。
管理表空间:
表空间是一个比较重要的逻辑概念,表空间是由物理数据文件组成。在创建表空间时,通常只需要指定表空间名称,数据文件路径、数据文件大小等。
数据文件是真实数据存储的地方,在DM数据库中数据文件的扩展名为.dbf,主要包括两部分,一部分是系统默认生成的数据文件,另一部分则是用户自己创建的数据文件两类。
注意事项:
单个表空间的数据文件数量不能超过256个
达梦数据库最多支持65535个表空间
数据文件的单位是MB,在创建的时候只需要写数字。不需要额外添加单位。数据文件大小取决于页大小。
创建表空间的语法如下:
CREATE TABLESPACE <表空间名> <数据文件子句>[<数据页缓冲池子句>][<存储加密子句>]
<数据文件子句> ::= DATAFILE <文件说明项>{,<文件说明项>}
<文件说明项> ::= <文件路径> [ MIRROR <文件路径>] SIZE <文件大小>[<自动扩展子句>]
<自动扩展子句> ::= AUTOEXTEND <ON [<每次扩展大小子句>][<最大大小子句> |OFF>
<每次扩展大小子句> ::= NEXT <扩展大小>
<最大大小子句> ::= MAXSIZE <文件最大大小>
<数据页缓冲池子句> ::= CACHE = <缓冲池名>
<存储加密子句> ::= ENCRYPT WITH <加密算法> [[BY] <加密密码>]
创建表空间(可以一次指定2个数据文件):
SQL> create tablespace tbs_bb datafile '/dm/dmdbms/data/PROD/tbs_bb01.dbf' size 256 ,'/dm/dmdbms/data/PROD/tbs_bb02.dbf' size 256;
操作已执行
已用时间: 26.996(毫秒). 执行号:307.
SQL> select a.name,b.id,b.path from v$tablespace a, v$datafile b where a.id=b.group_id;
行号 NAME ID PATH
---------- ------------ ----------- -----------------------------------
1 SYSTEM 0 /dm/dmdata/prod/SYSTEM.DBF
2 TBS_BB 1 /dm/dmdbms/data/PROD/tbs_bb02.dbf
3 TBS_BB 0 /dm/dmdbms/data/PROD/tbs_bb01.dbf
4 TBS_PROD_IDX 0 /dm/dmdbms/data/PROD/idx_prod01.dbf
5 TBS_PROD 0 /dm/dmdbms/data/PROD/tbs_prod01.dbf
6 DMHR 0 /dm/dmdata/prod/DMHR.DBF
7 BOOKSHOP 0 /dm/dmdata/prod/BOOKSHOP.DBF
8 MAIN 0 /dm/dmdata/prod/MAIN.DBF
9 TEMP 0 /dm/dmdata/prod/TEMP.DBF
10 ROLL 0 /dm/dmdata/prod/ROLL.DBF
扩张表空间:
表空间大小的扩张:1、扩展现有的数据文件大小,2、增加新的数据文件
为 tbs_bb表添加一个新的数据文件:
alter tablespace tbs_bb add datafile '/dm/dmdbms/data/PROD/tbs_bb03.dbf' size 256;
把数据文件大小修改为500m;
alter tablespace tbs_bb resize datafile '/dm/dmdbms/data/PROD/tbs_bb03.dbf' to 500;
修改数据文件的的扩展属性:
表空间默认是自动扩展的,可以修改表空间的相应属性限制表空间的大小
alter tablespace tbs_bb datafile '/dm/dmdbms/data/PROD/tbs_bb03.dbf' autoextend on next 100 maxsize 20000;
注:autoextend off 为不可扩展
修改表空间名称:
alter tablespace tbs_bb rename to tbs_dm;
在管理控制台查看ddl语句应该是,先脱机把表空间修改为 offline,再改名称,再上线把把表空间修改为online。表空间修改完成后操作系统中文件的名字也会完成修改。
删除表空间(删除后,对应的数据文件也会在操作系统层面删除):
drop tablespace tbs_dm;
更多内容可访问达梦官方社区地址:https://eco.dameng.com