创建删除表空间以及表空间使用情况查询

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.删除表空间、删除表空间数据文件以及删除用户时级联删除

  1. 删除表空间,
Drop tablespace xxx including contents
  1. 删除表空间及数据文件
Drop tablespace xxx including contents and datafiles
  1. 删除用户级联删除表空间
drop user test cascade
级联删除该用户后该用户对应表空间对应数据文件使用率下降
A用户表空间 tablespace1 数据文件data1.dbf 使用率下降
如果这个用户使用的表空间 tablespace 没有其他用户在用,则可以直接删除该表空间以及该表空 间的数据文件来释放空间;如果该表空间被共用,则删除该用户后可以修改表空间对应数据文件的大小来释放空间,不能直接删除表空间以及表空间对用数据文件。
posted @ 2017-08-22 14:03  Super_Mu  阅读(600)  评论(0编辑  收藏  举报