1. ホーム
  2. データベース
  3. 神託

オラクル表領域拡張の詳細

2022-01-07 20:38:47

1. テーブルスペースの容量測定クエリ

SELECT TABLESPACE_NAME "tablespace",
       To_char(Round(BYTES / 1024, 2), '99990.00')
       || '' "real",
       To_char(Round(FREE / 1024, 2), '99990.00')
       || 'G' "existing",
       To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')
       || 'G' "use",
       To_char(Round(10000 * USED / BYTES) / 100, '99990.00')
       || '%' "ratio"
FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
               Floor(A.BYTES / ( 1024 * 1024 )) BYTES,
               Floor(B.FREE / ( 1024 * 1024 )) FREE,
               Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED
        FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,
                       Sum(BYTES) BYTES
                FROM DBA_DATA_FILES
                GROUP BY TABLESPACE_NAME) A,
               (SELECT TABLESPACE_NAME TABLESPACE_NAME,
                       Sum(BYTES) FREE
                FROM DBA_FREE_SPACE
                GROUP BY TABLESPACE_NAME) B
        WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)
--WHERE TABLESPACE_NAME LIKE 'CDR%' -- This sentence is used to specify the tablespace name
ORDER BY Floor(10000 * USED / BYTES) DESC;



データファイルのメトリックスとパスの検索

select b.file_id File ID,
  b.tablespace_name tablespace,
  b.file_name physical file name,
  b.bytes Total number of bytes,
  (b.bytes-sum(nvl(a.bytes,0))) used,
  sum(nvl(a.bytes,0)) remaining,
  sum(nvl(a.bytes,0))/(b.bytes)*100 percentage remaining
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes
  order by b.tablespace_name
 



2. テーブルスペースの拡張

データファイルは最大32Gまで。

方法1:既存のデータファイルのサイズを手動で変更する

ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 20480M;




方法2:既存のデータファイルが自動的に増加するようにする

ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 100M MAXSIZE 20480M; 




方法3:データファイルの追加

ここで、1ファイルあたりの初期スペース割り当てを 7g , autoextend on を指定すると、オートエクステンドサイズに oracle を超えないようにしてください。

32g.

sqlスクリプトは以下の通りです。 (ここではデータファイルを2つ追加しており、拡張するテーブルスペースはsystemです)

ALTER TABLESPACE SYSTEM ADD DATAFILE
'C:\APP\ORACLE\ORADATA\DFYYCDB\DATAFILE\O2_MF_SYSTEM_CWMNZ9XV_.DBF' 
size 7167M autoextend on ;
ALTER TABLESPACE SYSTEM ADD DATAFILE
'C:\APP\ORACLE\ORADATA\DFYYCDB\DATAFILE\O3_MF_SYSTEM_CWMNZ9XV_.DBF' 
size 7167M autoextend on ;



oracleテーブルスペースの拡張の詳細については、この記事をもって終了とします。 oracle テーブルスペース拡張の詳細については、Scripting Houseの過去の記事を検索していただくか、引き続き以下の関連記事をご覧ください。