- 创建表空间
● 语法格式
# 创建表空间的SQL命令格式
create tablespace 表空间名 <数据文件子句>[<数据页缓存池子句>][<存储加密子句>];
# 各子句具体语法
datafile 数据文件位置 # 指定数据文件位置
size 文件大小 # 指定数据文件初始大小
mirror 文件路径 # 指定数据文件镜像(可选)
next 扩展大小 # 指定每次扩展的大小(可选)
maxsize 最大大小 # 指定最大扩展大小(可选)
cache 缓冲池名 # 指定数据也缓冲池(可选,默认值为normal)
encrypt with 加密算法 by 加密密码 # 指定加密的算法与密码 (可选,默认不加密)
# 新建表空间SQL语句部分参数说明
表空间名 # 表空间名最大长度为128字节
文件路径 # 指定新生成的数据文件在系统下的路径和新数据文件名
文件大小 # 指明新增数据文件的大小(单位为MB),取值范围为4096*页大小~2147483647页大小.
mirror # 数据文件镜像,用于在数据文件出现损坏时替代数据文件进行服务,后接<文件路径>.
- 实例
# 创建一个名为ts1的表空间,包含一个数据文件ts1.dbf,初始大小为128MB
SQL> create tablespace ts1 datafile '/dm/data/testdb/ts1.dbf' size 128;
# 文件大小的默认单位为MB.
# 创建一个名为ts2的表空间,包含两个数据文件,其中ts201.dbf文件的初始大小为64MB,每次扩展2MB,最大扩展至512MB;ts202.dbf文件的初始大小为128MB,不能自动扩展
SQL> create tablespace ts2 datafile '/dm/data/testdb/ts201.dbf' size 64 autoextend on next 2 maxsize 512, '/dm/data/testdb/test202.dbf' size 128 autoextend off;
# 一个逻辑意义上的表空间可以包含磁盘上的多个物理数据文件.
# 在创建表空间时,除了一些必要的参数外,其它参数默认即可.
# 一个表空间最多可以拥有256个数据文件.
- 查询表空间
# 查询所有表空间
SQL> select tablespace_name,file_name,autoextensible from dba_data_files;
LINEID TABLESPACE_NAME FILE_NAME AUTOEXTENSIBLE
---------- --------------- -------------------------- --------------
1 TS1 /dm/data/testdb/ts1.dbf YES
2 SYSTEM /dm/data/testdb/SYSTEM.DBF YES
3 ROLL /dm/data/testdb/ROLL.DBF YES
4 TS2 /dm/data/testdb/ts201.dbf YES
5 TS2 /dm/data/testdb/ts202.dbf NO
6 TEMP /dm/data/testdb/TEMP.DBF YES
7 MAIN /dm/data/testdb/MAIN.DBF YES
# 查询ts2表空间
SQL> select file_name,autoextensible from dba_data_files where tablespace_name='TS2';
LINEID FILE_NAME AUTOEXTENSIBLE
---------- --------------------------- --------------
1 /dm/data/testdb/ts201.dbf YES
2 /dm/data/testdb/test202.dbf NO
- 修改表空间
● 语法格式
# 修改表空间的SQL语句格式
alter tablespace 表空间名 [online | offline | <表空间重命名子句> | <数据文件重命名子句> | <增加数据文件子句> | <修改文件大小子句> | <修改文件自动扩展子句> | <数据页缓冲池子句> ];
# 子句说明
rename to <表空间> # 表空间重命名子句
rename datafile <文件路径> to <文件路径> # 数据文件重命名子句
add <数据文件子句> # 增加数据文件子句
resize datafile <文件路径> to <文件大小> # 修改文件大小子句
datafile <文件路径> [<自动扩展子句>] # 修改文件自动扩展子句
# 修改表空间的SQL语句的作用
通过这条SQL命令,可设置表空间脱机或联机,可修改表空间的名称,可修改数据文件的名称,可增加数据文件,可修改数据文件的大小,还可修改数据文件的自动扩展特性等.
- 实例
# 为ts2表空间增加数据文件ts203.dbf,大小为64MB
SQL> alter tablespace ts2 add datafile '/dm/data/testdb/ts203.dbf' size 64;
# 修改ts2表空间数据文件ts203.dbf的大小为128MB
SQL> alter tablespace ts2 resize datafile '/dm/data/testdb/ts203.dbf' to 128;
# 重命名ts2表空间数据文件ts203.dbf为ts213.dbf(在重命名数据文件时,必须先将数据文件设置为离线状态,然后才能重命名文件)
SQL> alter tablespace ts2 offline; # 设置数据文件离线
SQL> alter tablespace ts2 rename datafile '/dm/data/testdb/ts203.dbf' to '/dm/data/testdb/ts213.dbf'; # 修改数据文件名
SQL> alter tablespace ts2 online; # 设置数据文件在线
# 修改ts2表空间数据文件ts213.dbf为自动扩展,每次扩展6MB,最大可扩展至2048MB
SQL> alter tablespace ts2 datafile '/dm/data/testdb/ts213.dbf' autoextend on next 6 maxsize 2048;
# 删除ts2表空间数据文件ts213.dbf
SQL> alter tablespace ts2 drop datafile '/dm/data/testdb/ts213.dbf';
# 将ts2表空间重命名为ts_2
SQL> alter tablespace ts2 rename to ts_2;
# 修改ts_2表空间缓冲池名称为KEEP
SQL> alter tablespace ts_2 cache="KEEP";
● 修改表空间注意事项文章来源地址https://www.toymoban.com/news/detail-738556.html
- 修改表空间的用户必须具有修改表空间的权限,一般登录具有DBA权限的用户账户进行创建、修改和删除等表空间管理活动.
- 在修改表空间数据文件大小时,修改后的文件大小必须大于原文件的大小.
- 若表空间有未提交事务,则表空间不能修改为offline状态.
- 在重命名表空间数据文件时,表空间必须处于offline状态,在表空间修改成功后再将表空间修改为online状态.
- 删除表空间
● 实例
# 删除表空间ts1
SQL> drop tablespace ts1;
# 删除temp表空间
SQL> drop tablespace temp;
drop tablespace temp;
[-3418]:Error in line: 1
System tablespace [TEMP] can not be dropped. # 系统表空间[TEMP]不能被删除
used time: 0.181(ms). Execute id is 0.
# 这说明删除表空间是有限制的,数据库在安装过程中创建的表空间system和temp等不允许被删除;若表空间中已存在数据对象,则该表空间页不允许被删除.
- 删除表空间注意事项
- system、rlog、roll和temp等表空间不允许被删除.
- 删除表空间的用户必须具有删除表空间的权限,一般登录具有DBA权限的用户账户进行创建、修改、删除等表空间管理活动.
- 系统在处于syspend或mount状态时不允许删除表空间、系统只有在处于open状态下才运行删除表空间.
- 若表空间中存放了数据对象,则不允许删除表空间;若确实要删除表空间,则必须先删除表空间中的数据对象.
文章来源:https://www.toymoban.com/news/detail-738556.html
到了这里,关于达梦数据库之表空间管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!