表空间
数据库的物理结构:文件系统—数据文件
数据库的逻辑结构:数据库—表空间(多个数据文件构成)—段—簇—页
(一) 达梦默认有哪些表空间及其作用
1、查看表空间
【语句】SQL>select tablespace name from dba tablespaces;
(1) SYSTEM:系统表空间,存放数据字典信息
(2) ROLL:回滚表空间,存放回滚数据,对一个数据进行更新操作,存放的是更新前的版本信息,可以支持MVCC(事务多版本机制)
(3) TEMP:临时表空间,存放临时数据,可不做备份
(4) MAIN:main表空间,如果用户创建数据对象不指定存储位置,默认存放到main表空间上
(5) HMAIN:hmain表空间,存放的是huge table的信息
(二) 创建表空间
1、 规划表空间
案例一:创建一个表空间tbs,放在$DM_HOME /data/DB_NAME数据,处室文件大小为31M【注意,初始文件的大小是page的4096倍】
【语句】
SQL>create tablespace tbs datafile ‘/dm7/data/DAMENG/TBS.dbf’SIZE 31
案例二:,建一个表空间tbs2,有两个数据文件,分别存放到不同的disk上,初始大小为32M,单个文件最大为100M
【语句】
首先cd到dm7下,使用mkdir disk{1,2}
SQL>create tablespace tbs2 datafile’/dm7/data/DAMENG/disk1/TBS2_1.DBF’SIZE 32 autoextend on maxsize 100,’/dm7/ data/DAMENG/disk1/TBS2_2.DBF’SIZE 32 autoextend on maxsize 100,’
未指定扩展的大小是多少?
【语句】???
案例三:规划表空间tbs3,初始文件大小为32M,每次自动扩展1M,最大为33M
【语句】
SQL>create tablespace tbs3 datafile ‘/dm7/data/DAMENG/TBS3.dbf’SIZE 32 autoextend on next 1 maxsize 100,
2、 如何查询表可用表空间的大小
【语句】??
(三) 如何维护和管理表空间
1. 表空间不足(报错为磁盘空间不足)
(1) 创建大的表空间数据,导出再导入(不推荐使用)
(2) 把表空间的数据文件resize(变大某一个表空间,不推荐使用)
(3) 增加数据文件(推荐使用)
【语句】
SQL>alter tablespace tbs3 add datafile ‘/dm7/data/DAMENG/TBS3_1.dbf’ size 32 autoextend on maxsize 100;
2. 表空间更换存储位置
案例一:将tbs表空间放置到增加的新空间
先查找目前tbs所在位置
【语句】SQL>select tablespace_name ,file_name from dba_data_files where tablespace_name=’TBS’;
表空间更换存储位置时,要求表offline,0=online,1=offline
【语句】
SQL>select tablespace_name,status from dba_tablespaces;
更换表空间位置
【语句】
SQL>alter tablespace tbs rename datafile‘/dm7/data/DAMENG/TBS.dbf’ to ‘/dm7/tbs/ TBS.dbf’;
SQL>???
3. 删除表空间
删除TBS3表空间(如果表空间存在数据,不允许直接删除)
【语句】
SQL>drop tablespace tbs3
4. 利用管理工具创建表空间更简单