程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle 數據庫表空間容量調整腳本

Oracle 數據庫表空間容量調整腳本

編輯:關於Oracle數據庫

       (表空間縮容腳本)]

      --1、獲取需要釋放空間的表空間信息(包含oracle database自有表空間)

      --drop table system.tbs_detail;

      create table system.tbs_detail as select

      a.tablespace_name,

      a.bytes/1024/1024 "Sum_MB",

      (a.bytes-b.bytes)/1024/1024 "used_MB",

      b.bytes/1024/1024 "free_MB",

      round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"

      from

      (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,

      (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b

      where a.tablespace_name=b.tablespace_name

      order by ((a.bytes-b.bytes)/a.bytes) desc;

      --select * from system.tbs_detail order by "Sum_MB" desc,"free_MB" desc;

      --2、獲取需要釋放空間的應用表空間數據文件使用情況

      --drop table system.datafile_space;

      create table system.datafile_space as

      select a.TABLESPACE_NAME,

      a.FILE_NAME,

      a.BYTES / 1024 / 1024 total,

      b.sum_free / 1024 / 1024 free

      from dba_data_files a,

      (select file_id, sum(bytes) sum_free

      from dba_free_space

      group by file_id) b

      where a.FILE_ID = b.file_id

      and a.TABLESPACE_NAME in (select tablespace_name

      from system.tbs_detail

      where (tablespace_name like '%CQLT%' or

      tablespace_name like '%CQST%'

      or tablespace_name like 'TS%' or tablespace_name like 'IDX%'

      or tablespace_name like '%HX%')

      and "Sum_MB" > 100);

      --select * from system.datafile_space;

      --3、生成數據文件大小重置腳本,在每個數據文件當前實際使用空間大小基礎上增加 100m 空間

      select 'alter database datafile ''' || file_name || ''' resize ' ||

      round(to_number(total - free + 100),0) || ' M;'

      from system.datafile_space;

      --查看 ASM 磁盤組使用情況

      sqlplus / as sysdba <

      set feed off

      set linesize 200

      set pagesize 200

      set echo off

      spool /home/oracle/check_log/chktbs.log append

      select name,state,type,total_mb,free_mb from v$asm_diskgroup;

      spool off

      quit

      EOF

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved