第25回:Oracle RAC 19c for Windows構築時のポイント

技術者向け・データベースの技術情報発信

当社組織にもOCI(Oracle Cloud Infrastructure)ソリューション部が新設され、クラウド化の流れの大きさを実感できる世の中になってきました。

そうした中、オンプレミスのWindows Server 2019上にOracle Database 19c RACを構成する珍しい案件があり、構築時のポイントを整理しましたので、今回ご紹介したいと思います。

1. インストールユーザとホームユーザ

WindowsのインストールユーザはLinuxとは異なり、以下について注意が必要です。
(「Microsoft Windows のインストールおよびアップグレード ガイド」より)

インストールユーザ

OracleプロダクトのインストールOSユーザ(管理者ユーザ:Administratorsに含める)

●ローカルユーザアカウントを使用する場合

  • ユーザアカウントは、クラスター内のすべてのノードに存在する必要があります。
  • ユーザ名とパスワードは、すべてのノードで同じである必要があります。
  • OUIは警告メッセージを表示します。

●ドメイン・ユーザ・アカウントを使用する場合

  • ドメインユーザは、クラスター内の各ノードでローカルAdministratorsグループのメンバーとして明示的に宣言する必要があります。
    ドメインユーザが別のグループからメンバーシップを継承している場合は、十分ではありません。
  • インストールを実行するユーザは、各ノードの同じドメインに存在する必要があります。
    たとえば、最初のノードにRACDBA¥dba1ユーザを配置し、2番目のノードにユーザにDBADMIN¥dba1を配置することはできません。
  • 同じ名前のローカルユーザは、どのノードにも存在できません。
    たとえば、RACDBA¥dba1をインストールユーザとして使用する場合、どのノードにもNODE1¥dba1といった同一ユーザ名のローカルアカウントを持つことはできません。

※マニュアル上はOSユーザのoracle,grid分割の要否が記載されていませんが、Linux系同様に分割可能であることが確認できました。

Oracleホームユーザ

WindowsOS上の各種Oracleサービスが利用するOSユーザ(非管理者ユーザ:Administratorsに含めない)

●Oracleホームユーザとして既存のユーザを指定する場合

  • ユーザまたはグループマネージドサービスアカウント(gMSA)ユーザである必要があります。
    Oracleホームユーザを使用する場合、Oracle Cluster Registryの安全なウォレット(自動的に作成される)には、Oracleホームユーザの名前とパスワードの情報が格納されます。
  • インストールおよび一部の管理タスク中にユーザ名およびパスワードを指定する必要があります。(セキュリティ:高)

●Oracleホームユーザを作成しない場合

  • Windowsの組み込みアカウントがOracleホームユーザとして使用されます。
  • インストールおよび管理中にユーザ名およびパスワードは要求されません。

※OSユーザ構成や運用の考え方をLinux系と合わせたい場合は、Windowsの組み込みアカウントが選択されるケースもあるかと思います。

2. ログローテーションの注意点

Windowsの場合はプロセスがログファイル(アラートログ、リスナーログ等)を掴んでしまっているため、Linuxのlogrotateのように単純なログのローテーションはできません。
メンテナンス時に停止してログをローテーションさせるか、以下をMy Oracle Support情報を参考に工夫する必要があります。

●リスナー起動中にlistener.logの出力先を変更する方法
(KROWN:14400) (Doc ID 1703417.1)

●Listenerを停止せず、listener.logを連続性を保ったまま新しく出力させる方法
(KROWN:27348) (Doc ID 1708934.1)

3. 共有ディスク認識順序の補正方法

初期構築時にRACの共有ディスクボリュームを複数認識させる場合、各ノードは同じ順序でボリュームを認識させる必要がありますが、環境によっては認識順序が入れ替わってしまう場合もあるかと思います。
環境依存となりますが、DISKPARTのUNIQUEID DISKで各ノードのUNIQUEID DISK IDを一致させることにより、解決できるケースも確認されました。

DISKPART> LIST DISK
DISKPART> SELECT DISK <ディスク ID>
DISKPART> UNIQUEID DISK
ディスク ID: 11B7F86D
DISKPART> UNIQUEID DISK ID = 0A1321C4

4. MBR/GPTパーティションとCOMPATIBLE.RDBMS

Oracle Databaseのインストールガイドの記載では物理ディスクの初期化方式としてMBR形式についての記載はされていますが、GPT形式のサポート状況については詳しい記載が見受けられませんでした。
サポートへ確認したところ、GPT形式でも利用可能とのことです。

※MBR形式では2TBのサイズ制限があることから、大きな物理ディスクを利用する場合は考慮が必要となります。
また、ASMを利用する場合は、以下設定/制限にも注意が必要です。

<「Oracle Database 19c 管理者ガイド」より>
●Oracle Exadataストレージがない場合、COMPATIBLE.ASMまたはCOMPATIBLE.RDBMSディスク・グループ属性が12.1未満に設定されている時、Oracle ASMには次のようなストレージの制限があります。

  • Oracle ASMディスクごとに最大2TBのストレージ
  • ストレージ・システムに対して最大20PB

●Oracle Exadataストレージがない場合、COMPATIBLE.ASMおよびCOMPATIBLE.RDBMSディスク・グループ属性が12.1以上に設定されている時、Oracle ASMには次のようなストレージの制限があります。

  • 割当て単位(AU)サイズが1MBのOracle ASMディスクごとに最大4PBのストレージ
  • AUサイズが2MBのOracle ASMディスクごとに最大8PBのストレージ
  • AUサイズが4MBのOracle ASMディスクごとに最大16PBのストレージ
  • AUサイズが8MBのOracle ASMディスクごとに最大32PBのストレージ
  • ストレージ・システムに対して最大320EB

5. おわりに

今回、Windows系のRACを構築してみて、Windows系独自の注意点、前提OS/DBパッチの多さ、情報の少なさを実感しました。
Oracle Databaseはパブリッククラウドサービスの多くがLinux系OSをベースとしているように、OSの選定は実績の豊富なLinux系OSをベースとすることが安全性、安定性の近道と感じます。

当社の技術共有が、少しでも作業の手助けになれば幸いです。
最後までお読みいただき、ありがとうございました。