--查询表空间
SELECT * FROM Dba_Data_Files ddf WHERE ddf.tablespace_name = 'USERS';

--新建表空间 指定数据文件
create tablespace T1_TS 
datafile '/data/oracle/oradata/orcl/T1_TS01.dbf' size 10240M --存储地址 初始大小
autoextend on next 1024M maxsize unlimited   --每次扩展,无限制扩展
EXTENT MANAGEMENT local  autoallocate
segment space management auto;

--新建临时表空间 指定数据文件
create temporary tablespace T1_TS_TMP   
tempfile '/data/oracle/oradata/orcl/T1_TS_TMP01.dbf'  
size 50m autoextend on next 50m maxsize 20480m   
extent management local;  

--新建用户
create user szyl identified by szyl default tablespace T1_TS temporary tablespace T1_TS_TMP
grant dba to szyl

--修改表空间数据文件可扩展大小
ALTER DATABASE DATAFILE '/data/oracle/oradata/orcl/T1_TS01.DBF' AUTOEXTEND ON NEXT 100M MAXSIZE 24000M;

--收缩表空间,因为可能表删除了释放了空间。但只能收缩数据文件末尾的连续的没有使用的存储块。想删除中间的,需要移动数据表索引
alter database   datafile '/data/oracle/oradata/orcl/T1_TS01.DBF'  resize 23000M;
--查询数据文件实际存储的数据大小,当前总扩展大小,可收缩空间大小
SELECT a.tablespace_name,
file_name,
c.VALUE / 1024 "Blk. size(Kb)",
CEIL ((NVL (hwm, 1) * c.VALUE) / 1024 / 1024) "smallest(Mb) - HWM",
CEIL (blocks * c.VALUE / 1024 / 1024) "currsize(Mb)",
CEIL (blocks * c.VALUE / 1024 / 1024) - CEIL ((NVL (hwm, 1) * c.VALUE) / 1024 / 1024) "savings(Mb)"
FROM dba_data_files a,
(SELECT file_id, MAX (block_id + blocks - 1) hwm
FROM dba_extents
GROUP BY file_id) b,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'db_block_size') c
WHERE a.file_id = b.file_id(+)
and a.status !='INVALID';

--增加表空间数据文件
alter tablespace T1_TS add datafile '/home/oracle/oradata/orcl/T1_TS02.DBF' size 500M AUTOEXTEND on next 100m MAXSIZE 20480M;

--删除表空间数据文件,前提是还没有存储数据(空数据文件)
Alter tablespace T1_TS drop datafile '/home/oracle/oradata/orcl/T1_TS03.DBF';

--脱机表空间数据文件,但这并不是删除。若将数据文件物理删除了,还需要数据字典信息等删除(未验证),或脱机暂不管它
ALTER DATABASE DATAFILE '/home/oracle/oradata/orcl/T1_TS02.DBF' offline drop;

--删除整个表空间包括数据文件
drop tablespace T1_TS including contents and datafiles cascade constraint;

--查询回收站
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

--回收站清理
purge recyclebin ;