アットウィキロゴ

セグメント管理2

■表領域のサイズ変更

①データファイル追加
ALTER TABLESPACE SYSTEM ADD  DATAFILE '/opt/oracle/oradata/isdb/system02.dbf' SIZE 350M AUTOEXTEND ON;

②自動拡張のみ
ALTER DATABASE DATAFILE '/opt/oracle/oradata/isdb/system01.dbf' AUTOEXTEND ON;

③データファイルの手動拡張
ALTER DATABASE DATAFILE '/opt/oracle/oradata/isdb/undotbs01.dbf' RESIZE 300M;

 

 

※実行前後で以下のSQLを実行して確認すること

---------------------------

 set lines 32767
set pages 10000
set trim on
set trimspool on
column tablespace_name format a30
column file_name format a128
column %USED format 99.999999
column SIZE(KB) format 999,999,999
column USED(KB) format 999,999,999
column "NOT USE(KB)" format 999,999,999

SELECT U.FILE_ID, U.TABLESPACE_NAME,
       NVL(U.FILE_NAME,U.TABLESPACE_NAME) FILE_NAME,
       SUM(NVL(U.BYTES, 0)) "sz (BYTES)",
       SUM(NVL(F.BYTES, 0)) "free (BYTES)",
       SUM(NVL(U.BYTES, 0)-NVL(F.BYTES, 0)) "used (BYTES)",
       NVL(U.STATUS,DECODE(SUM(DECODE(U.STATUS,'AVAILABLE',1,0)),COUNT(*),'ALL',0,'OFFLINE?','SOME')) STATUS,
       NVL(U.AUTOEXTENSIBLE,DECODE(SUM(DECODE(U.AUTOEXTENSIBLE,'YES',1,0)),COUNT(*),'ALL',0,'NO','SOME')) AUTOEXTENSIBLE,
       U.EXTENT_MANAGEMENT,
       U.SEGMENT_SPACE_MANAGEMENT
  FROM (SELECT D.FILE_NAME,
               D.FILE_ID,
               D.TABLESPACE_NAME,
               T.EXTENT_MANAGEMENT,
               T.SEGMENT_SPACE_MANAGEMENT,
               D.STATUS,
               D.AUTOEXTENSIBLE,
               SUM(D.BYTES) BYTES,
               SUM(D.MAXBYTES) MAXBYTES
          FROM DBA_DATA_FILES D INNER JOIN DBA_TABLESPACES T
            ON D.TABLESPACE_NAME = T.TABLESPACE_NAME
         GROUP BY D.FILE_NAME, D.FILE_ID, D.TABLESPACE_NAME, T.EXTENT_MANAGEMENT, T.SEGMENT_SPACE_MANAGEMENT, D.STATUS, D.AUTOEXTENSIBLE) U
       LEFT OUTER JOIN
       (SELECT FILE_ID,
               SUM(BYTES) BYTES
          FROM DBA_FREE_SPACE
         GROUP BY FILE_ID) F
    ON U.FILE_ID = F.FILE_ID
 GROUP BY GROUPING SETS(
          (U.FILE_ID, U.TABLESPACE_NAME, U.FILE_NAME, U.STATUS, U.AUTOEXTENSIBLE, U.EXTENT_MANAGEMENT, U.SEGMENT_SPACE_MANAGEMENT),
          (U.TABLESPACE_NAME, U.EXTENT_MANAGEMENT, U.SEGMENT_SPACE_MANAGEMENT) )
HAVING FILE_NAME IS NOT NULL or count(*) > 1
 UNION ALL
SELECT U.FILE_ID, U.TABLESPACE_NAME,
       NVL(U.FILE_NAME,U.TABLESPACE_NAME) FILE_NAME,
       SUM(NVL(U.BYTES, 0)) "sz (BYTES)",
       SUM(NVL(U.BYTES, 0)-NVL(F.BYTES, 0)) "free (BYTES)",
       SUM(NVL(F.BYTES, 0)) "used (BYTES)",
       NVL(U.STATUS,DECODE(SUM(DECODE(U.STATUS,'AVAILABLE',1,0)),COUNT(*),'ALL',0,'OFFLINE?','SOME')) STATUS,
       NVL(U.AUTOEXTENSIBLE,DECODE(SUM(DECODE(U.AUTOEXTENSIBLE,'YES',1,0)),COUNT(*),'ALL',0,'NO','SOME')) AUTOEXTENSIBLE,
       U.EXTENT_MANAGEMENT,
       U.SEGMENT_SPACE_MANAGEMENT
  FROM (SELECT D.FILE_NAME,
               D.FILE_ID,
               D.TABLESPACE_NAME,
               T.EXTENT_MANAGEMENT,
               T.SEGMENT_SPACE_MANAGEMENT,
               D.STATUS,
               D.AUTOEXTENSIBLE,
               SUM(D.BYTES) BYTES,
               SUM(D.MAXBYTES) MAXBYTES
          FROM DBA_TEMP_FILES D INNER JOIN DBA_TABLESPACES T
            ON D.TABLESPACE_NAME = T.TABLESPACE_NAME
         GROUP BY D.FILE_NAME, D.FILE_ID, D.TABLESPACE_NAME, T.EXTENT_MANAGEMENT, T.SEGMENT_SPACE_MANAGEMENT, D.STATUS, D.AUTOEXTENSIBLE) U
       LEFT OUTER JOIN
       (SELECT FILE_ID,
               SUM(BYTES_CACHED) BYTES
          FROM V$TEMP_EXTENT_POOL
         GROUP BY FILE_ID) F
    ON U.FILE_ID = F.FILE_ID
 GROUP BY GROUPING SETS(
          (U.FILE_ID, U.TABLESPACE_NAME, U.FILE_NAME, U.STATUS, U.AUTOEXTENSIBLE, U.EXTENT_MANAGEMENT, U.SEGMENT_SPACE_MANAGEMENT),
          (U.TABLESPACE_NAME, U.EXTENT_MANAGEMENT, U.SEGMENT_SPACE_MANAGEMENT) )
HAVING FILE_NAME IS NOT NULL or count(*) > 1
/

最終更新:2009年03月13日 20:05