Oracle 表空间查询、添加

来源:互联网 发布:听收音机的软件 编辑:程序博客网 时间:2024/06/04 18:36

--表空间大小
select sum(bytes) / 1024 / 1024 /1024 as GB from dba_data_files;

--数据库版本
select * from v$instance

--select  * from TB_PM_MO_LBWP

--1、查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024*1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name --and t.tablespace_name='TB_PM_MO_LBWP'
GROUP BY t.tablespace_name;

--2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name,File_ID;


--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--

--查询表空间使用情况
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 1

--查询表空间的free space
select tablespace_name, count(*) AS extends,round(sum(bytes) / 1024 / 1024, 2) AS MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;

--查询表空间的总容量
select tablespace_name, sum(bytes) / 1024 / 1024/1024 as GB from dba_data_files group by tablespace_name;

--查询表空间使用率
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;


--******************************修改表空间数据文件名称 Begin**************************--

--1、将表空间置为offline
--ALTER TABLESPACE TMS_LYT OFFLINE;  

--2、修改数据文件名字
--alter tablespace TMS_LYT rename DATAFILE 'E:\APP\HUIJUAN\PRODUCT\LOCALDATEBASE\TMS_RITONG' TO 'E:\APP\HUIJUAN\PRODUCT\LOCALDATEBASE\TMS_LYT';  

--3、重新将表空间置为online
--ALTER TABLESPACE TMS_LYT online;

--******************************修改表空间数据文件名称 End**************************--

--http://www.cnblogs.com/bingzisky/p/4743119.html

--******************************表空间扩容 Begin**************************--
--第一种方式:表空间增加数据文件
--alter tablespace 表空间名称 add datafile '/oralcda/u03/app/oracle/oradata/prod/users02.dbf' size 30000M;


--第二种方式:表空间增加数据文件,设置自增长,限制最大值  
--2、alter tablespace 表空间名称 add datafile 'G:\spacess01.DBF' size 500M autoextend on maxsize 3072M;

--第三种方式:已存在表空间数据文件设置自增长
--3、alter datapace datafile 'G:\spacess01.DBF' autoextend on maxsize 3072M;

--第四种方式:已存在表空间数据文件重新设置大小
--4、alter datapace datafile 'G:\spacess01.DBF' resize 3072M;  
--******************************表空间扩容 End**************************--