DBサーバ構成
全体構成
オンラインWebシステムだとだいたい「アプリケーション・サーバの処理能力 < DBサーバの処理能力」なので、あとで構築するアプリケーション・サーバが2台ならDBサーバも2台で十分じゃないの? というところですがノード追加やDBサービスの動作検証をいろいろ試したいのでDBサーバは3台構成とします。まあ、余った一台は更新用とかバッチ処理用とかEUC用とか、そこらへんの適当な名目で作ってしまおうかと。

ネットワーク
ネットワーク/ポートグループ
Oracle RAC環境ではサービス・ネットワークにあたるパブリック・ネットワークとノード間の通信(インターコネクト)用のプライベート・ネットワークが必要です。また、サーバ管理とData GuardのREDO転送には本番サイト管理用ネットワークを利用します。
【ネットワーク構成】
| ネットワーク | 用途 | ポートグループ | ネットワーク・アドレス |
| 本番サイト管理用ネットワーク | 管理用/DRサイトへのREDO転送 | Production MG Pub Network | 172.16.10.0/24 |
| DBネットワーク (パブリック・ネットワーク) | DB接続 | Production DB Pub Network | 192.168.30.0/24 |
| インターコネクト (プライベート・ネットワーク) | RACノード間通信 | Production DB Prv Network | 10.10.20.0/24 |
ホスト名/IPアドレス
RAC環境ではDBサーバのIPアドレス、DBインスタンス接続用の仮想IPアドレスに加えて3個以上の単一クライアント・アクセス(SCAN)用IPアドレスが必要です。
DBサーバの各ネットワーク・インターフェースに割り当てるホスト名とIPアドレスはこんな感じで行こうと思います。
【ホスト名/IPアドレス一覧】
| ネットワーク | DBサーバ#1 | DBサーバ#2 | DBサーバ#3 |
| ホスト名(system) | prsdb01.exsample.lan | prsdb02.exsample.lan | prsdb03.exsample.lan |
| 管理ネットワーク | prsdb01-mgt.exsample.lan 172.16.10.21/24 | prsdb02-mgt.exsample.lan 172.16.10.22/24 | prsdb03-mgt.exsample.lan 172.16.10.23/24 |
| DBネットワーク | prsdb01.exsample.lan 192.168.30.21/24 | prsdb02.exsample.lan 192.168.30.22/24 | prsdb03.exsample.lan 192.168.30.23/24 |
| DBネットワーク | prsdb01-vip.exsample.lan 192.168.30.31/24 | prsdb02-vip.exsample.lan 192.168.30.32/24 | prsdb03-vip.exsample.lan 192.168.30.33/24 |
| インターコネクト | prsdb01-prv.exsample.lan 10.10.20.1/24 | prsdb02-prv.exsample.lan 10.10.20.2/24 | prsdb03-prv.exsample.lan 10.10.20.3/24 |
【Oracle RAC環境SCAN IPアドレス】
| ネットワーク | SCAN | IPアドレス |
| DBネットワーク | prsscan.exsample.lan | 192.168.30.121/24 192.168.30.122/24 192.168.30.123/24 |
名前解決
DNSを使用せずhostsファイルのみを使用してRACを構成することも可能ですが今回はSCANの名前解決にDNS、SCAN以外の名前解決にhostファイルを使用します。なお、DNSにSCANの名前解決を任せる場合はDBサーバのDNS登録も必要です。
ハードウェア
Oracle 21c「Grid Infrastructureインストレーションおよびアップグレード・ガイド」のインストール・チェックリストに記載されたサーバー構成要件を参考にDBサーバには以下のリソースを割り当てます。
【リソース構成】
| 設定項目 | アップグレードガイド・ サーバー構成要件 | 本番DBサーバ設定値 |
| CPU | – | 4 |
| メモリ(RAM) | 8 GB | 12 GiB |
| SWAP | RAM 16GBまでRAMと同じ | 12 GiB |
| OS用ローカル・ディスク | – | 100 GB |
| Oracle製品用ローカル・ディスク | Grid Infra 12 GB + Oracle DB 10GB | 50 GiB |
RAC/DB構成
ASMディスク・グループ
ある程度以上の規模のシステムではストレージの高速バックアップ機能(オールフラッシュ・ストレージではスナップショット&ボリューム・コピー)を使用してボリューム・セット単位(DBから見ればASMディスク・グループ単位)でDBのバックアップを取得するケース*が多いと思います。
今回構築するシステムもストレージの高速バックアップ機能を使用したボリューム・セット単位のバックアップを前提にASMのディスク・グループを構成します。
【ASMディスク・グループ一覧】
| ディスク・グループ | 用途 | ASMディスク(仮想ディスク) | 冗長性 | 合計サイズ |
| DG01 | 投票ディスク&OCR格納用 | storage/prsdb/disk001.vmdk(3 GB) storage/prsdb/disk002.vmdk(3 GB) storage/prsdb/disk003.vmdk(3 GB) | 標準 | 9GB |
| DG02 | アーカイブログ格納用 | storage/prsdb/disk011.vmdk(10 GB) storage/prsdb/disk012.vmdk(10 GB) | 外部 | 20 GB |
| DG11 | REDOログ、一時ファイル格納用 | storage/prsdb/disk101.vmdk(10 GB) storage/prsdb/disk102.vmdk(10 GB) | 外部 | 20 GB |
| DG21 | データファイル格納用 | storage/prsdb/disk201.vmdk(30 GB) storage/prsdb/disk202.vmdk(30 GB) | 外部 | 60 GB |
*物理サーバでDBサーバを構築するか、仮想マシンでDBサーバを構築してASM用のディスクデバイスにストレージのLUをrawデバイス・マッピングで割り当てる構成の場合。仮想マシンでDBサーバを構築してASM用のディスクデバイスにVMDKを使用する場合、ストレージの高速バックアップはASMディスク・グループ単位ではなくデータストア単位です。
投票ディスク&OCR格納用ディスク・グループ
外部冗長性のディスク・グループでは単一の投票ディスク、標準冗長性のディスク・グループでは最低3個の投票ディスクが作られます。万一投票ディスクが破損するとクラスタ全体が停止してしまうことから投票ディスク、OCR及びメタデータは標準冗長性のディスク・グループ*に格納します。
*標準冗長のディスク・グループを構成するASMディスクの最低本数は2本ですが、投票ディスクを格納する場合は最低3本のASMディスクが必要です。
アーカイブログ格納用ディスク・グループ
RAC環境のアーカイブログ出力先はすべてのノードからアクセス可能な場所という制約があります。ファイル操作という面では管理サーバのNFSにアーカイブログを出力したいところですが、NFSやネットワークの障害でアーカイブログが出力できなくなるとDB処理も停止してしまいます。そこでアーカイブログの出力先はASMディスク・グループ、アーカイブログ・バックアップの保管場所を管理サーバのNFSとします。
REDOログ、一時ファイル格納用ディスク・グループ
オンライン・バックアップを使用したDBバックアップにリストアの対象外である一時ファイルやREDOログを含めることにはデメリットしかないのでデータファイル格納用のディスク・グループとREDOログ・一時ファイル格納用のディスク・グループを分けて構成します。
データファイル格納用ディスク・グループ
「Oracle Automatic Storage Management 管理者ガイド 21c」の「ストレージ準備の推奨事項」にはディスク・グループあたりの推奨ディスク本数が「アクティブなI/Oパスの少なくとも4倍」となっています。この本数には冗長性その他の前提や具体的な根拠が書かれておらず、HDDストレージにおけるI/O負荷分散を意識したルールのようにも思えます。
シークに伴う待機がなくデータの物理配置も固定されないオールフラッシュ・ストレージでASMディスクを分けることにどれほど効果があるかは正直疑問だったので念のためChatGptさんにそこらへんのところを尋ねたところ「HDDほどではないがオールフラッシュ・ストレージでもディスク・グループを複数のASMディスクで構成することによりキューやI/Oパスの分散効果あり。ただし上に挙げた4倍ルールはHDDストレージの時ほど厳密に守る必要はなくある程度柔軟性をもたせてOK」とのことでした。
まあ、そうした効果はあるにせよASMディスクの本数があまり増えても管理が面倒なので各ディスク・グループは2本、ただし投票ディスク&OCR格納用は3本のASMディスクで構成とします。
【補足①】
上に書いた複数LUを使用したディスク・グループ構成の効果は本物のオールフラッシュ・ストレージと物理サーバでDBサーバでRACを構成した場合*です。今回構築する環境ではストレージ側ではなく仮想マシン側にディスク共有を設定したSCSIコントローラ 1個を持たせるだけ(最大4個まで実装できるがそこまでやりたくない)。またESXiの仕様上仮想マシンにマルチパスを構成することもできないので正直、効果はほとんどないかと思います。それでもなるべく本物っぽくやりたいからということで複数LUでのディスク・グループ構成としました。
*または仮想のDBサーバにrawデバイス・マッピングでストレージのLUを割り当てて使用する場合。ただしVMWareはOracle RAC用の共有ディスクについて、この方式ではなくVMDKでの構成を推奨しています。VMDKでASMディスクを構成する場合はストレージのLUにデータストアを作成してそこにVMDKを配置することになります。
OSユーザ及びグループ
Grid Infrastructure及びOracle Databaseで使用するOSグループ及びOSユーザは以下の通りとします。
【Oracle用OSグループ一覧】
| グループ | ID | 用途 |
| oinstall | 1100 | Oracle製品所有者 |
| asmadmin | 1101 | Oracle ASM管理者グループ |
| asmdba | 1102 | ASM用OS DBAグループ |
| racdba | 1103 | OS RAC DBAグループ |
| dba | 1104 | Oracle DB管理者グループ |
【Oracle用OSユーザ一覧】
| ユーザ名 | ID | プライマリ・グループ | 所属グループ | 用途 |
| grid | 1100 | oinstall | asmadmin,asmdba,racdba,dba | Grid Infrastructureバイナリ所有者 |
| oracle | 1101 | oinstall | asmdba,racdba,dba | Oracle Databaseバイナリ所有者 |
DB名、PDB名、DBサービス
DB名及びPDB名
非常に残念なことですがOracle 20c以降、非マルチテナント構成(従来のシングル構成)はサポート対象外となりました。本番DBはマルチテナントで構成します。本番DB名及び本番PDB名は以下の通りです。
【本番DB名・本番PDB名】
| DB | DB名 |
| 本番DB(Production Database) | PRDB |
| 本番PDB(Production Pluggable Database) | PRPDB |
DBサービス
DB構築時に作成されるデフォルトの接続サービスは管理用のサービスです。プロパティは変更もできず「Real Application Clusters管理およびデプロイメント・ガイド」でもRAC環境でアプリケーションのDB接続には使用しないように明記されています。なのでアプリケーション用として以下のサービスを本番DBに追加します。
【接続サービス一覧】
| サービス名 | 用途 |
| online_srv | オンライン・アプリケーション接続用 |
| batch_srv | バッチ・アプリケーション接続用 |
ディスク・レイアウト
本番DBのディスク・レイアウトは以下の通りです。ストレージ機能でDBのオンライン・バックアップを行う場合はディスク・グループ DG21のASMディスク(disk201、disk202)を対象にスナップショットを取得します。

その他、細かい事項については構築の各段階に記述ことにして、まずはDBサーバの構築から
DBサーバ構築 関連ページ
1.全体構成
2.ストレージ(仮想)構成
3.インストール環境構築
4.Grid Infra21cインストール
5.Oracle21c インストール
6.Oracle DB 2ノードRAC構築
7.Oracle RAC ノード追加
サイト内リンク一覧
ネットワーク構築
管理用ネットワーク構築
仮想ルータ構築 1(構成概要、OSインストール)
仮想ルータ構築 2(vyos設定)
仮想ルータ構築 3(vyos・open-vm-tools)
本番サイト構築
本番サイト構築
本番サイト・管理サーバ構築
管理サーバ構築 1(chrony、named)
管理サーバ構築 2(Pacemaker、NFS Server)
本番サイト・DBサーバ構築
DBサーバ構築 1(全体構成)
DBサーバ構築 2(OSインストール、ストレージ(vmdisk)構成)
DBサーバ構築 3(Oracle RACインストール環境構築)
DBサーバ構築 4 (Grid Infra21cインストール)
DBサーバ構築 6(Oracle DB 2ノードRAC構築)
DBサーバ構築 7(Oracle RAC ノード追加)
本番サイト・APサーバ構築
APサーバ構築 1(Weblogicインストール)
APサーバ構築 2(WebLogicドメイン構築)
APサーバ構築3(JDBC接続)
APサーバ構築 4(DB接続確認用アプリ作成)
APサーバ構築 5(アプリ・デプロイ)
APサーバ構築 6(本番モード切替)
本番サイト・Webサーバ構築
Webサーバ構築(Apache + WLS Proxy Plug-in)
本番サイト・ロードバランサ構築
ロード・バランサ構築(HAPtroxy+Keepalived)
Web-AP-DB連携検証
Web-AP-DB連携検証1(Active GridLink)
Web-AP-DB連携検証2(DBノード障害)
参考情報
「DBサーバ構築」を書くにあたり、以下の情報を参考にさせていただきました。
【Device Mapper Multipath】
Device Mapper Multipath の設定 | Red Hat Product Documentation
【Grid Infrastructure】
Oracle Grid Infrastructure Grid Infrastructureインストレーションおよびアップグレード・ガイド 21c for Linux
Oracle ASMストレージに関する考慮事項の確認
Oracle Real Application Clusters Real Application Clusters管理およびデプロイメント・ガイド, 21c
動的データベース・サービスによるワークロード管理
Oracle Real Application Clusters管理およびデプロイメント・ガイド12c リリース1 (12.1)
Oracle Databaseデータベース・インストレーション・ガイド, 21c for Linux
avahi-daemon サービスとは何ですか? これを無効にすることはできますか? – Red Hat Customer Portal
仮想化環境での時間管理入門
【HugePages計算スクリプト】
hugepages_settings.sh · GitHub
また、このページを書くにあたり、ChatGptさんに大変助けていただきました。具体的には以下の事項でご支援いただいています。
- オールフラッシュ・ストレージのデータ管理及びアクセス制御の仕様的傾向
- オールフラッシュ・ストレージ主要製品のアクセス制御方法
- ESXi ゲストOSの仮想ディスクを対象としたストレージ・スナップショットのシミュレート
- 投票ディスク格納ディスク・グループの冗長性
- サーバ、クライアントのDB接続役割分担とサーバ・サイドの設定
厚くお礼申し上げます。
メニュー
トップページ
自己紹介
問合せ(メール)
修正履歴
2026/4/30
サイト内リンク一覧を追記
2026/5/13
ASMディスク・グループの記述を整理。

コメント