oracle表空间
Oracle的表空间与数据文件是成对出现的,每一个数据文件对应一个表空间,一个表空间可以包含多个数据文件。表空间分为普通表空间和大文件表空间,普通表空间的单个数据文件最大为32G,而大文件表空间的单个数据文件最大可以为128TB。一般设计数据库时,判断普通表空间无法满足应用时就创建大文件表空间。
查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')|| '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 使用比 desc
查询表空间文件路径和大小
select a.tablespace_name,a.FILE_NAME,bytes / 1024 / 1024 || 'M' "size",a.AUTOEXTENSIBLE,a.MAXBYTES,a.INCREMENT_BY from dba_data_files a --where a.tablespace_name='USERS'order by a.FILE_NAME;
--查询临时表空间文件路径
select * from dba_temp_files;
--查询表空间文件路径
select * from dba_data_files;
创建表空间
create tablespace sdt
datafile '/home/oracle/app/oracle/oradata/orcl/sdt01.dbf'
size 30g --初始文件大小
--autoextend on --自动增长,默认off
--next 50m --自动增长大小
--maxsize 32768m --最大文件大小
--extent management local --表空间采用本地表空间管理
建议写为固定值,不自动增长
创建大文件表空间
create bigfile tablespace TABLESPACE_NAME
datafile '路径/文件.dbf'size 100G AUTOEXTEND ON;
创建临时表空间
create temporary tablespace TABLESPACE_NAME
tempfile '路径/文件.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建用户并指定表空间
create user sdt identified by 123456 default tablespace sdt;
扩充表空间
alter tablespace sdt add datafile '/home/oracle/app/oracle/oradata/orcl/sdt02.dbf' SIZE 30g
--AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED;
开启表空间自动扩展的语句
ALTER DATABASE DATAFILE '/home/oracle/app/oracle/oradata/orcl/sdt02.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE 10240M;