Oracle RAC 構成において、ストレージの効率的な管理はシステムの安定性に直結します。本記事では、Oracle RAC のコンポーネントを最適に配置するために、DATA と RECO のように ASM ディスク・グループを分離すべき理由と、その構築手順、運用の注意点をプロの視点で解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
導入(要約)
Oracle RAC 環境を構築する際、すべてのファイルを 1 つのディスク領域に混在させていませんか?Oracle RAC 構成のベストプラクティスは、データ用の「DATA」とリカバリ用の「RECO」に ASM ディスク・グループを分けることです。これにより、I/O パフォーマンスの最適化と、管理性の向上が実現できます。この記事では、なぜ分離が必要なのか、その具体的な実装方法を 19c 環境を例に解説します。
結論:RAC における ASM 設計の最短チェックリスト
- DATA グループ: データファイル、制御ファイル(コピー1)、オンライン REDO ログ(コピー1)を配置。
- RECO グループ: アーカイブログ、バックアップ、制御ファイル(コピー2)、オンライン REDO ログ(コピー2)を配置。
- メリット: リカバリ領域の満杯による DB 停止リスクの低減と、物理的な I/O 分散。
- 推奨: 最低でも 2 つのディスク・グループに分けることが、Oracle 公式の推奨構成です。
背景と基礎:なぜ ASM ディスク・グループを分けるのか?
用語の定義
- ASM (Automatic Storage Management): Oracle 専用のボリューム・マネージャ兼ファイルシステム。
- 高速リカバリ領域 (FRA): アーカイブログやバックアップを自動管理する領域。通常、RECO グループに割り当てます。
分離する理由(仕組み)
Oracle RAC では、全ノードから共有ストレージへのアクセスが発生します。データ更新(Read/Write)とアーカイブ出力(Write)のパスを分離しないと、チェックポイント発生時やバックアップ実行時に I/O 競合が発生し、レスポンス低下を招きます。また、RECO 側を大容量・低速なディスク、DATA 側を高速な SSD にするといったコスト最適化も可能になります。
手順・実装:ASM ディスク・グループの作成方法
前提条件
- OS: Oracle Linux 7/8
- 環境: Oracle Grid Infrastructure 19c インストール済み
- 権限:
GRIDユーザー(ASM 管理者) - ディスク:
/dev/sdb1(DATA用),/dev/sdc1(RECO用) などが準備されていること
1. ASM インスタンスへの接続
# 1号機にて、環境変数を設定して接続
export ORACLE_SID=+ASM1
sqlplus / as sysasm
2. DATA および RECO ディスク・グループの作成
実機で動作する標準的な作成 SQL です。冗長性は環境に合わせて EXTERNAL / NORMAL / HIGH を選択してください。
-- DATAディスク・グループの作成(データファイル用)
CREATE DISKGROUP DATA EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/DISK1' NAME DATA_0001;
-- RECOディスク・グループの作成(リカバリ領域・アーカイブ用)
CREATE DISKGROUP RECO EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/DISK2' NAME RECO_0001;
補足:EXTERNAL はストレージ側で RAID を組んでいる場合に使用します。
3. データベースでのリカバリ領域設定
DB インスタンス側で、RECO グループを高速リカバリ領域として指定します。
-- 共有パラメータファイル (SPFILE) を更新
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 100G SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '+RECO' SCOPE=BOTH;
解説:これにより、アーカイブログや RMAN バックアップが自動的に +RECO へ格納されます。
トラブルシューティング:代表的な ORA-エラー
| エラーコード | 原因 | 確認・対処方法 |
| ORA-15041 | ディスク・グループの空き不足 | V$ASM_DISKGROUP で空きを確認。不要なアーカイブを削除するかディスクを追加。 |
| ORA-15032 | ディスク・グループの作成失敗 | パス /dev/... の所有権(grid:asmadmin)とパーミッションを確認。 |
| ORA-19809 | リカバリ領域の制限超え | DB_RECOVERY_FILE_DEST_SIZE を拡張。物理容量だけでなく、論理制限値もチェック。 |
運用・監視・セキュリティ上の注意
- リスク: RECO 領域が 100% になると、アーカイブログが書き込めず DB 全体がハング(停止)します。
- 運用: DATA と RECO の監視閾値は分けるべきです。RECO はバックアップ運用によって増減が激しいため、より頻繁な監視が必要です。
- 戻し方: 万が一ディスク・グループを削除する場合は
DROP DISKGROUP <名> INCLUDING CONTENTS;ですが、データが全消去されるため、実行前に必ずバックアップを確認してください。
FAQ:Oracle RAC 構成に関するよくある質問
Q: DATA と RECO で物理ディスク(LUN)も分けるべきですか?
A: はい。同じ物理ディスク上のパーティション分けだけでは I/O 分散にならないため、ストレージレイヤーから物理的に分けるのが理想です。
Q: 制御ファイルや REDO ログを両方に置く(多重化)のはなぜですか?
A: 片方のディスク・グループ(または物理エンクロージャ)が故障しても、もう片方で運用を継続できるようにするためです。
Q: 19c で PDB ごとにディスク・グループを分けることはできますか?
A: 技術的には可能ですが、管理が非常に複雑になります。通常は CDB レベルで DATA/RECO を共有し、クォータ制限で制御します。
まとめ
- Oracle RAC 構成では、DATA と RECO の分離がパフォーマンスと可用性の基本。
- ASM ディスク・グループを分けることで、メンテナンス時の影響範囲を限定できる。
- +RECO に高速リカバリ領域(FRA)を設定し、アーカイブログ管理を自動化する。
- 物理 I/O の競合を避けるため、ストレージ階層からの分離を検討する。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント