Oracle表空间满处理方式

一、查询表空间常规语句

1.查询表空间使用情况

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

 

2、查询表空间的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;

 

3、查询表空间的总容量

select tablespace_name, sum(bytes) / 1024 / 1024 as mb 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;

 二、解决表空间满实例

1、20160613处理ydjc表空间满,处理情况

1)查询表空间使用效率

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

2)查询文件:

select * from dba_data_files d where d.tablespace_name=’tbs_master’

3)执行增加数据文件

alter tablespace tbs_master add datafile ‘+data_asm/ipsd/tbs_master16.dbf’ size 1g autoextend on next 10m maxsize unlimited

2、20160921处理临时表空间不足问题:

–新增临时表空间

select * from dba_temp_files d where d.tablespace_name=’temp’;

新增临时表空间

alter tablespace temp add tempfile ‘/data/devgbk/devgbk/temp02.dbf’ size 1g autoextend on next 10m maxsize unlimited;

select d.*,d.user_bytes/d.bytes from dba_temp_files d where d.tablespace_name=’temp’;

修改已经临时表空间大小

alter database tempfile ‘+data_asm/ipsd/temp03.dbf’ resize 20g;

 

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐