您的位置:首页 > 数据库 > Oracle

Oracle 表空间查询、添加

2017-09-11 11:34 239 查看
--表空间大小

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**************************--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: