创建删除表空间以及表空间使用情况查询
1.1表空间创建
1.1
自己本机环境的路径
C:\oracle\product\10.2.0\oradata\orcl
create tablespace LTSYSDATA01(表空间名)
datafile 'C:\oracle\product\10.2.0\oradata\orcl\LTSYSDATA01A.DBF' size 1024M
autoextend on next 50M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
1.2修改表空间LTSYSDATA01数据文件LTSYSDATA01KZ.DBF的大小
alter database datafile 'C:\oracle\product\10.2.0\oradata\orcl\LTSYSDATA01KZ.DBF' resize 2g;
1.3空间单个数据文件最大32g,扩展表空间数据文件语句(允许自动增长):
alter tablespace LTSYSDATA01 add datafile 'C:\oracle\product\10.2.0\oradata\orcl\LTSYSDATA01KZ.DBF' size 1g autoextend on next 500M;
1.4扩展表空间的三种办法:
1手动增加数据文件大小
alter database datafile '/home/oracle/ts01.dbf' resize 100m;
2把表空间设置为自动扩展
alter database datafile '/home/oracle/ts01.dbf' autoextend on next 5m maxsize unlimited;
3 往表空间增加数据文件
alter tablespace ts01 add datafile '/home/oracle/ts02.dbf' size 2m;
2.表空间大小,使用情况查询
select total.tablespace_name,
round(total.MB, 2) as Total_MB,
round(total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct from
(select tablespace_name,sum(bytes) / 1024 / 1024 as MB from dba_free_space group by tablespace_name) free,
(select tablespace_name,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name) total
where free.tablespace_name = total.tablespace_name order by tablespace_name desc;
select t1.name,t2.name --查看表空间及数据文件
from v$tablespace t1,v$datafile t2
where t1.ts# = t2.ts#;
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;
3.删除表空间、删除表空间数据文件以及删除用户时级联删除
- 删除表空间,
Drop tablespace xxx including contents
-
删除表空间及数据文件
Drop tablespace xxx including contents and datafiles
-
删除用户级联删除表空间
drop user test cascade
级联删除该用户后该用户对应表空间对应数据文件使用率下降
A用户表空间 tablespace1 数据文件data1.dbf 使用率下降
如果这个用户使用的表空间 tablespace 没有其他用户在用,则可以直接删除该表空间以及该表空 间的数据文件来释放空间;如果该表空间被共用,则删除该用户后可以修改表空间对应数据文件的大小来释放空间,不能直接删除表空间以及表空间对用数据文件。