DBサーバ構築 1(全体構成)

DBサーバ・Oracle RAC

DBサーバ構成

全体構成

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

ネットワーク

ネットワーク/ポートグループ

Oracle RAC環境ではサービス・ネットワークにあたるパブリック・ネットワークとノード間の通信(インターコネクト)用のプライベート・ネットワークが必要です。また、サーバ管理とData GuardのREDO転送には本番サイト管理用ネットワークを利用します。

【ネットワーク構成】

ネットワーク用途ポートグループネットワーク・アドレス
本番サイト管理用ネットワーク管理用/DRサイトへのREDO転送Production MG Pub Network172.16.10.0/24
DBネットワーク
(パブリック・ネットワーク)
DB接続Production DB Pub Network192.168.30.0/24
インターコネクト
(プライベート・ネットワーク)
RACノード間通信Production DB Prv Network10.10.20.0/24

ホスト名/IPアドレス

RAC環境ではDBサーバのIPアドレス、DBインスタンス接続用の仮想IPアドレスに加えて3個以上の単一クライアント・アクセス(SCAN)用IPアドレスが必要です。

DBサーバの各ネットワーク・インターフェースに割り当てるホスト名とIPアドレスはこんな感じで行こうと思います。

【ホスト名/IPアドレス一覧】

ネットワークDBサーバ#1DBサーバ#2DBサーバ#3
ホスト名(system)prsdb01.exsample.lanprsdb02.exsample.lanprsdb03.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アドレス】

ネットワークSCANIPアドレス
DBネットワークprsscan.exsample.lan192.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サーバ設定値
CPU4
メモリ(RAM)8 GB12 GiB
SWAPRAM 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
DG11REDOログ、一時ファイル格納用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用途
oinstall1100Oracle製品所有者
asmadmin1101Oracle ASM管理者グループ
asmdba1102ASM用OS DBAグループ
racdba1103OS RAC DBAグループ
dba1104Oracle DB管理者グループ

【Oracle用OSユーザ一覧】

ユーザ名IDプライマリ・グループ所属グループ用途
grid1100oinstallasmadmin,asmdba,racdba,dbaGrid Infrastructureバイナリ所有者
oracle1101oinstallasmdba,racdba,dbaOracle Databaseバイナリ所有者

DB名、PDB名、DBサービス

DB名及びPDB名

非常に残念なことですがOracle 20c以降、非マルチテナント構成(従来のシングル構成)はサポート対象外となりました。本番DBはマルチテナントで構成します。本番DB名及び本番PDB名は以下の通りです。

【本番DB名・本番PDB名】

DBDB名
本番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接続役割分担とサーバ・サイドの設定

厚くお礼申し上げます。

メニュー

トップページ

3層Webシステム | バカメのとなり

自己紹介

タイトルの由来と自己紹介 | バカメのとなり

ぎゃらりい | バカメのとなり

問合せ(メール)

お問い合わせ | バカメのとなり

修正履歴

2026/4/30

サイト内リンク一覧を追記

2026/5/13

ASMディスク・グループの記述を整理。

コメント

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