Oracle表空间实用语句(查询、新建、扩充)

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_BYTES
        FROM   SYS.DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
        FROM   SYS.DBA_DATA_FILES DD
        GROUP  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 32768‬m   --最大文件大小
--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;

你可能感兴趣的:(oracle,数据库)