[Oracle] ASMディスクの使用率を簡単に確認する方法

Oracle

RAC環境だとASMディスク利用率を確認したい場面が度々出てきます。
毎回同じようなことを調べているので備忘録的に残しておきます。

はじめに

ASM(Automatic Storage Management)はOracleデータベースのストレージ管理において重要な役割を果たします。
ディスク使用率を適切に管理することで、システムのパフォーマンスを維持し、予期せぬ障害を防ぐことができます。
本ページではASMディスクの使用率を確認するための基本的な手順とSQLコマンドを紹介します。

ディスク使用率を確認する理由

ASMディスクの使用状況を定期的に確認することで、ディスク容量の不足を早期に検知し、必要な拡張やメンテナンス作業を計画的に行うことができます。
定期的に確認しなかった場合、意図しないタイミングで領域不足が発生するなど、データベースの安定運用に支障が出る恐れがあります。

ディスク使用率確認の手順

ここではSQL*Plusを使用して、ASMディスクの使用率を確認する方法を紹介します。
SQL*Plusから下記クエリを実行することで、ASMディスク使用率を出力することができます。
ディスクグループの冗長度を考慮したSQLにしています。

set lines 200 pages 300
select
   to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS') exec_date,
   name, type,
   ((total_mb - free_mb) / decode(type, 'NORMAL', 2, 'HIGH', 3, 1)) "used(MB)",
   (free_mb / decode(type, 'NORMAL', 2, 'HIGH', 3, 1)) "free(MB)",
   ((total_mb - free_mb) / total_mb) * 100 "usage(%)"
from v$asm_diskgroup dg
order by name asc;

このクエリでは、以下の項目を確認できます。

  • exec_date:クエリ実行日時。実行時によって使用率が変化するため、日時を出力させている。
  • name:ディスクグループ名。
  • type:ディスクグループの冗長性。
  • use(MB): 使用容量(MB)
  • free(MB): 空き容量(MB)
  • usage(%): ディスク使用率(%)

実行結果例

実行している内容は単純ですので直感的にも理解しやすいと思います。

EXEC_DATE           NAME                 TYPE     used(MB)   free(MB)   usage(%)
------------------- -------------------- ------ ---------- ---------- ----------
2024/07/13 17:51:29 DATAC1               HIGH     81238636    8439188 90.5894371
2024/07/13 17:51:29 RECOC1               HIGH      8366400   14046912 37.3278166

コメント

タイトルとURLをコピーしました