表空间介绍
DM
默认预定义
SYSTEM
、
ROLL
、
MAIN
、
TEMP
、
HMAIN
五个表空间。
SYSTEM
系统表空间,存放数据字典等信息(表、字段、视图等对象的定义、权限信
息等)
ROLL
回滚表空间,存放回滚页,数据库中的
DML
操作对应都会生成
redo
和
undo
,
undo
信息放入
ROLL
表空间,用于保证数据的一致性。
MAIN
用户默认表空间,当创建用户时,如果为指定用户的默认表空间,则
MAIN
为
用户的默认表空间。
TEMP
临时表空间,存放临时表数据等、当大量的数据排序或创建索引等占用临时表
空间。
DM
中临时表空间相关参数:
SQL> select * from v$parameter t where name like '%TEMP%';
- TEMP_PATH:临时表空间路径
- TEMP_SIZE:临时表空间初始大小
- TEMP_SPACE_LIMIT:临时表空间限制大小
需求1:扩充临时表空间大小为100M(然后重启数据库)
HMAIN
HUGE
表的默认表空间(
HTS
表空间)
创建表空间
CREATE TABLESPACE < 表空间名 > < 数据文件子句 >[< 数据页缓冲池子句 >][< 存储加密子句 >][< 指定 DFS 副本子句 >][<HUGE 路径子句 >]
- <数据文件子句> ::= DATAFILE <文件说明项>{,<文件说明项>}
- <文件说明项> ::= <文件路径> [ MIRROR <文件路径>] SIZE <文件大小>[<自动扩展子句>]
- <自动扩展子句> ::= AUTOEXTEND <ON [<每次扩展大小子句>][<最大大小子句>] |OFF>
- <每次扩展大小子句> ::= NEXT <扩展大小>
- <最大大小子句> ::= MAXSIZE <文件最大大小>
- <数据页缓冲池子句> ::= CACHE = <缓冲池名>
- <存储加密子句> ::= ENCRYPT WITH <加密算法> [BY <加密密码>]
- <指定 DFS 副本子句> ::= [<指定副本数子句>][<副本策略子句>]
- <指定副本数子句> ::= COPY <副本数>
- <副本策略子句> ::= GREAT | MICRO
- <HUGE 路径子句> ::= WITH HUGE PATH <HUGE 数据文件路径> [<副本策略子句>]
举例:
SQL> CREATE TABLESPACE tbs datafile 'tbs_01.DBF' size 32;
修改表空间
ALTER TABLESPACE < 表空间名 > [ONLINE | OFFLINE | CORRUPT|< 表空间重命名子句 > | < 数据文件重命名子句>|< 增加数据文件子句 >|< 修改文件大小子句 >|< 修改文件自动扩展子句 >|< 数据页缓冲池子句>|<DSC 集群表空间负载均衡子句 >|< 增加 HUGE 路径子句 >]
- <表空间重命名子句> ::= RENAME TO <表空间名>
- <数据文件重命名子句>::= RENAME DATAFILE <文件路径>{,<文件路径>} TO <文件路径>{,< 文件路径>}
- <增加数据文件子句> ::= ADD <数据文件子句>
- <数据文件子句>见上一节表空间定义语句
- <修改文件大小子句> ::= RESIZE DATAFILE <文件路径> TO <文件大小>
- <修改文件自动扩展子句> ::= DATAFILE <文件路径>{,<文件路径>}[<自动扩展子句>]
- <自动扩展子句> ::= 见 3.4.1 节说明
- <数据页缓冲池子句> ::= CACHE = <缓冲池名>
- <DSC 集群表空间负载均衡子句> ::= OPTIMIZE <DSC 集群节点号>
- <增加 HUGE 路径子句> ::= ADD HUGE PATH <HUGE 数据文件路径> [<副本策略子句>]
举例:
例1将表空间
TS1
名字修改为
TS2
。
SQL> alter tablespace TS1 rename to TS2;
例
2
增加一个路径为
TS1_01.dbf
,大小为
128M
的数据文件到表空间
TS2
。
SQL> ALTER TABLESPACE TS2 add datafile 'TS1_01.dbf' SIZE 128;
操作已执行
已用时间: 18.568(毫秒). 执行号:2100.
例
3
修改表空间
TS2
中数据文件
TS1_01.dbf
的大小为
200M
。
SQL> ALTER TABLESPACE TS2 RESIZE DATAFILE 'TS1_01.dbf' to 200;
操作已执行
已用时间: 69.338(毫秒). 执行号:2200.
例
4
重命名表空间
TS2
的数据文件
TS1_01.dbf
为
TS2_01.dbf
。
注:重命名表空间数据文件时,表空间必须处于OFFLINE状态
SQL> alter tablespace TS2 rename datafile 'TS1_01.dbf' to 'TS2_01.dbf';
alter tablespace TS2 rename datafile 'TS1_01.dbf' to 'TS2_01.dbf';
第1 行附近出现错误[-3407]:表空间[TS2]处于联机状态.
已用时间: 0.311(毫秒). 执行号:0.
SQL> alter tablespace TS2 offline;
操作已执行
已用时间: 24.043(毫秒). 执行号:2300.
SQL> alter tablespace TS2 rename datafile 'TS1_01.dbf' to 'TS2_01.dbf';
操作已执行
已用时间: 711.261(毫秒). 执行号:2301.
SQL> alter tablespace TS2 online;
操作已执行
已用时间: 24.983(毫秒). 执行号:2302.
SQL>
例
5
修改表空间
TS2
的数据文件
TS2_01.dbf
自动扩展属性为每次扩展
10M
,最大文
件大小为
1G
。
disql V8
SQL> alter tablespace TS2 datafile 'TS2_01.dbf' autoextend on next 10 maxsize 10240;
操作已执行
已用时间: 38.780(毫秒). 执行号:2400.
SQL>
例
6
修改表空间
TS2
缓冲池名字为
KEEP
。
SQL> alter tablespace TS2 cache="keep";
alter tablespace TS2 cache="keep";
第1 行附近出现错误[-3421]:不能将用户表空间的cache修改为除NORMAL和KEEP以外的值.
已用时间: 0.707(毫秒). 执行号:0.
SQL> alter tablespace TS2 cache="KEEP";
操作已执行
已用时间: 35.099(毫秒). 执行号:2500.
SQL>
例
7
为表空间
TS2
添加
HUGE
数据文件路径
SQL> alter tablespace TS2 add huge path "/dm8_5236/DAMENG/HUGE2";
alter tablespace TS2 add huge path "/dm8_5236/DAMENG/HUGE2";
alter tablespace TS2 add huge path "/dm8_5236/DAMENG/HUGE2";
*
第 1 行, 第 87 列["]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.307(毫秒). 执行号:0.
SQL> alter tablespace TS2 add huge path '/dm8_5236/DAMENG/TS2/HUGE1';
操作已执行
已用时间: 42.942(毫秒). 执行号:2600.
SQL>
删除表空间
DROP TABLESPACE [IF EXISTS] < 表空间名 >
举例:
1.删除表空间TS2
SQL> DROP TABLESPACE TS2;
操作已执行
已用时间: 145.521(毫秒). 执行号:2700.
SQL>
查看表空间相关字典表和视图表
select * from dba_tablespaces;
select * from DBA_DATA_FILES;
select * from v$tablespace;
select * from v$datafile;
select * from DBA_FREE_SPACE; --数据文件剩余空间