• ベストアンサー

DB容量の確認方法

Oracle初心者です。 DBの全容量や今利用している容量(データが蓄積された分)や 残ってる容量などを確認したいのですが、 どのような方法が適切なのでしょうか? ネットなどで見ても、今ひとつよく分からなかったので 質問させて頂きました。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mototaker
  • ベストアンサー率100% (7/7)
回答No.1

DBの容量は、意外と分かりやすいものです でも、Enterprise ManagerなどのGUIをつかよりも、 SQL を使ってコマンドで調べてみましょう ◆ お答えします まず、DBのデータは、ファイルに格納されています ASMのケースもありますが、まずは、通常のファイルシステムの 場合でお答えします DB容量は、 [______________________________________] まず、このように全部で格納でいるファイルを作ります。 そのファイルを、データファイル といいます。 そのデータファイルをまとめた入れ物が テーブルスペースといいます。日本語では、表領域です。 そして、その表領域に、テーブルを作成して、行を格納します [■■■■■■__________________________] このように格納されます。(イメージ図です) この時、2つの尺度があります。 1つ目は、 データファイルがまとまった表領域のサイズがどれくらいで、 その内、どれくらの割合を使われているか *これは、あとどれくらいで満杯になるかが分かります [■■■■■■__________________________] であれば、30%ぐらいでしょうか・・・ 2つ目は、 データファイルがまとまった表領域の中で 既に使用済みのテーブルの、空き具合は、どうなっているのか? *これは、どれくらい、無駄に使っているのかが分かります 実際の現場では、1つ目の確認だけをやれば まず大丈夫です ◆ では、実際にやってみましょう データファイルがまとまった表領域のサイズがどれくらいで、 その内、どれくらの割合を使われているかを求めるSQL文 select ddf.TABLESPACE_NAME, ddf.BYTES, ddf.BYTES-DFS.BYTES "BYTES_USED", round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "PERCENT_USED", dfs.BYTES "BYTES_FREE", round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "PERCENT_FREE" from (select TABLESPACE_NAME, sum(BYTES) bytes from dba_data_files where autoextensible='NO' group by TABLESPACE_NAME) ddf, (select TABLESPACE_NAME, sum(BYTES) bytes from dba_free_space group by TABLESPACE_NAME) dfs where ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME order by ((ddf.BYTES-dfs.BYTES)/ddf.BYTES) desc 実行結果 列の意味 TABLESPACE_NAME 表領域の名前 BYTES       表領域のサイズ BYTES_USED     表領域の使用済みサイズ PERCENT_USED    使用済みの割合 BYTES_FREE    まだ使えるサイズ WHERE句の意味 where autoextensible='NO' これは、データファイルの空きが0になったら、 自動拡張するかどうかです。これが、NOなので 今回は自動拡張しないものを、SELECTしています TABLESPACE_NAME BYTES BYTES_USED PERCENT_USED BYTES_FREE ------------------------------ ---------- ---------- ------------ ---------- PERCENT_FREE ------------ APPS_TS_SEED 3126853632 3061055488 97.9 65798144 2.1 APPS_TS_TX_DATA 5956042752 5764939776      96.79 191102976 3.21 SYSAUX 497745920 468385792 94.1 29360128 5.9 APPS_TS_TX_IDX 8112570368 7470710784 92.09 641859584 7.91 今回のサンプルでは、 どれも90%を超えているので、これから表領域のサイズを広げる必要がありますね・・・ 表領域を広げるには、   データファイル自体のサイズを広げる   新たに別のデータファイルを追加する などがあります。 Your DBA MOTO:TAKER

evaag777
質問者

お礼

ご丁寧なご説明、どうもありがとうございました。

関連するQ&A