【Oracle RAC】構築時にノードが落ちる原因を詳細調査した話(CRS-1719とメモリ枯渇の真実)

RAC

「自宅のPCで検証用に Oracle RAC(Real Application Clusters)を構築してみたい」。 エンジニアなら一度は抱く野望ですが、その道のりは決して平坦ではありません。特に個人のPC環境では、リソース(CPU、メモリ、ディスク)の制約が最大の敵となります。

「なんとかインストールまではこぎ着けた。しかし、DBCA(Database Configuration Assistant)でデータベースを作成している最中に、片方のノードが突然応答しなくなる。気づけば勝手に再起動している……」

アラートログを見ても CRS-xxxx という大量のエラーコードが並ぶだけで、根本原因が掴めない。 本記事では、限られたリソース(Windows 16GB)環境での Oracle Database 19c RAC 構築トラブル事例 として、ログ解析から「OSのリソース不足(メモリ枯渇)」を特定し、安定稼働させるまでの詳細な調査プロセスと、限界環境で生き残るためのチューニング手法を共有します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

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

この記事で分かること

  • CRS-1719 が示す「OSリソース枯渇」と「プロセス・スケジューリング遅延」の深い関係
  • OSのスワッピング(Thrashing)がクラスターウェアに与える致命的な影響
  • メモリ6GBという極限環境でRACを動かすための、HugePagesを含む具体的なチューニング戦略
  • 検証環境構築における「スペックの壁」と、それを乗り越えるための現実的なアプローチ

1. トラブルの状況:構築中にノードが落ちる

検証環境のスペックと制約

今回の検証環境は、一般的な開発用PC(Windows)上に仮想マシン(VM)を立てて構築しました。サーバー機ではなく、あくまで個人のラップトップやデスクトップPCを想定しています。

  • ホストOS: Windows 10 Professional (物理メモリ 16GB)
  • 仮想化ソフト: Oracle VM VirtualBox
  • ゲストOS: Oracle Linux 7.9 (x86-64)
  • 構成: Oracle Database 19c (19.3) 2ノード RAC
  • ネットワーク: NATネットワーク(外部接続用) + ホストオンリーアダプター(インターコネクト用)
  • リソース割り当て:
    • CPU: 2 Core / Node
    • Memory: 6 GB / Node (ホストが16GBのため、OSや他アプリ分を残すとこれが限界)

発生した事象の詳細

Grid Infrastructure のインストール自体は、前提条件チェックでいくつかの警告(メモリ不足など)を「無視」することで通過し、完了しました。ASM(Automatic Storage Management)も起動し、クラスタとして一見正常に機能しているように見えました。

しかし、Database を作成するために dbca コマンドを実行し、進捗が 40%〜60% 程度(データファイルのコピーやインスタンスの起動フェーズ)に差し掛かったあたりで異変が起きます。

  1. 操作不能: SSHで接続しているターミナルの応答が極端に遅くなり、コマンド入力ができなくなる。
  2. フリーズ: 仮想マシンの画面が完全に固まる。
  3. 強制再起動: 数分後、片方のノード(または両方)が突然再起動し、Oracle Clusterware の起動シーケンスからやり直しになる。

この「Eviction(ノード排除)」と呼ばれる現象は、RAC がデータの整合性を守るために行う正常な動作ですが、構築者にとっては悪夢です。

2. ログ解析:CRS-1719 は「動きたくても動けない」悲鳴

再起動後、Grid Infrastructure の診断ログ(/u01/app/grid/diag/crs/<node>/crs/trace/alert.logocssd.trc)を確認すると、クラスターウェアが死に至るまでの断末魔が記録されていました。

(1) 予兆:通信途絶(CRS-1612)とタイムアウト

まず記録されていたのは、相手ノード(v19rac2)との通信が途絶え始めていることを示す警告です。

2025-12-10 15:19:12.943 [OCSSD(3442)]CRS-1612: Network communication with node v19rac2 (2) has been missing for 50% of the timeout interval.
2025-12-10 15:23:59.122 [OCSSD(8473)]CRS-1611: Network communication with node v19rac2 (2) has been missing for 75% of the timeout interval.

通常、これはネットワークケーブルの断線やスイッチの障害を疑うメッセージです。しかし、仮想環境内(内部ネットワーク)で物理障害は考えにくく、設定ミスであれば最初から通信できないはずです。「途中から通信できなくなった」という点がポイントです。

これは「ネットワークが切れた」のではなく、「相手(または自分)が忙しすぎて、ネットワークパケットを処理できていない」 可能性を示唆しています。

(2) 決定打:プロセスがスケジュールされない(CRS-1719)

さらにログを追うと、再起動後のログに、このトラブルの核心を突く 決定的なエラー が見つかりました。

2025-12-10 15:38:28.388 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 70420 msecs.

これが今回の「真犯人」です。

  • エラーの意味: クラスター監視の要である CSSD プロセス(のスレッド)が、約70秒間(70420 msecs)もOSからCPU使用権を与えられなかった
  • 技術的背景:
    • 現代のマルチタスクOSでは、ミリ秒単位でプロセスを切り替えて(コンテキストスイッチ)実行しています。
    • 重要なシステムプロセスである CSSD が 70秒間も放置されるということは、OSのスケジューラーが機能不全に陥っていることを意味します。
    • 最も可能性が高い原因は、極度のメモリ不足によるスラッシング(Thrashing) です。メモリ領域を確保するためにページアウト(スワップへの書き出し)とページイン(読み戻し)が頻発し、CPUがひたすらディスクI/Oの完了待ち(iowait)をしてしまっている状態です。

この間、CSSD はハートビート(生存確認)を送信できず、相手ノードからは「死んだ」とみなされ、クラスターから強制排除(Eviction)されたのです。

【参考】:出力していたログ

ログ出力結果を表示(ここをクリック)

[grid@v19rac1 trace]$ tail -f alert.log
2025-12-10 15:14:45.926 [OLOGGERD(3968)]CRS-8500: Oracle Clusterware OLOGGERD process is starting with operating system process ID 3968
2025-12-10 15:14:45.938 [OLOGGERD(3948)]CRS-8500: Oracle Clusterware OLOGGERD process is starting with operating system process ID 3948
2025-12-10 15:14:45.979 [OLOGGERD(3912)]CRS-8500: Oracle Clusterware OLOGGERD process is starting with operating system process ID 3912
2025-12-10 15:14:45.991 [OLOGGERD(3932)]CRS-8500: Oracle Clusterware OLOGGERD process is starting with operating system process ID 3932
2025-12-10 15:14:46.063 [OLOGGERD(3948)]CRS-8501: Oracle Clusterware OLOGGERD process with operating system process ID 3948 is ending with return value 4294967295
2025-12-10 15:14:46.069 [OLOGGERD(3968)]CRS-8501: Oracle Clusterware OLOGGERD process with operating system process ID 3968 is ending with return value 4294967295
2025-12-10 15:14:46.101 [OLOGGERD(3932)]CRS-8501: Oracle Clusterware OLOGGERD process with operating system process ID 3932 is ending with return value 4294967295
2025-12-10 15:14:46.105 [OLOGGERD(3912)]CRS-8501: Oracle Clusterware OLOGGERD process with operating system process ID 3912 is ending with return value 4294967295
2025-12-10 15:14:46.535 [OLOGGERD(3886)]CRS-8501: Oracle Clusterware OLOGGERD process with operating system process ID 3886 is ending with return value 4294967295
2025-12-10 15:15:17.643 [CRSD(5649)]CRS-8500: Oracle Clusterware CRSD process is starting with operating system process ID 5649
2025-12-10 15:17:28.786 [CRSD(5649)]CRS-1012: The OCR service started on node v19rac1.
2025-12-10 15:17:30.190 [CRSD(5649)]CRS-1201: CRSD started on node v19rac1.
2025-12-10 15:17:32.860 [ORAAGENT(6199)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 6199
2025-12-10 15:17:33.105 [ORAROOTAGENT(6213)]CRS-8500: Oracle Clusterware ORAROOTAGENT process is starting with operating system process ID 6213
2025-12-10 15:17:33.182 [ORAAGENT(6246)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 6246
2025-12-10 15:17:42.144 [ORAAGENT(6359)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 6359
2025-12-10 15:19:12.943 [OCSSD(3442)]CRS-1612: Network communication with node v19rac2 (2) has been missing for 50% of the timeout interval.  If this persists, removal of this node from cluster will occur in 14.750 seconds
2025-12-10 15:19:14.119 [OCSSD(3442)]CRS-1727: Network communication between this node 'v19rac1' (1) and node 'v19rac2' (2) re-established. Node removal no longer imminent.
2025-12-10 15:19:47.909 [OCSSD(3442)]CRS-1612: Network communication with node v19rac2 (2) has been missing for 50% of the timeout interval.  If this persists, removal of this node from cluster will occur in 14.080 seconds
2025-12-10 15:19:54.297 [OCSSD(3442)]CRS-1727: Network communication between this node 'v19rac1' (1) and node 'v19rac2' (2) re-established. Node removal no longer imminent.
2025-12-10 15:19:57.225 [OCSSD(3442)]CRS-1609: This node is unable to communicate with other nodes in the cluster and is going down to preserve cluster integrity; details at (:CSSNM00008:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc.
2025-12-10 15:19:57.257 [OCSSD(3442)]CRS-1656: The CSS daemon is terminating due to a fatal error; Details at (:CSSSC00012:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc
2025-12-10 15:19:57.293 [OCSSD(3442)]CRS-1652: Starting clean up of CRSD resources.
2025-12-10 15:19:57.412 [ORAROOTAGENT(6213)]CRS-5818: Aborted command 'check' for resource 'ora.asmnet1.asmnetwork'. Details at (:CRSAGF00113:) {1:14806:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_orarootagent_root.trc.
2025-12-10 15:19:57.434 [ORAAGENT(6359)]CRS-5818: Aborted command 'check' for resource 'ora.ASMNET1LSNR_ASM.lsnr'. Details at (:CRSAGF00113:) {1:14806:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc.
2025-12-10 15:19:58.311 [OCSSD(3442)]CRS-1608: This node was evicted by node 2, v19rac2; details at (:CSSNM00005:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc.
2025-12-10 15:20:00.194 [OCSSD(3442)]CRS-1654: Clean up of CRSD resources finished successfully.
2025-12-10 15:20:00.196 [OCSSD(3442)]CRS-1655: CSSD on node v19rac1 detected a problem and started to shutdown.
2025-12-10 15:20:00.251 [ORAROOTAGENT(6213)]CRS-5822: Agent '/u01/app/19.0.0/grid/bin/orarootagent_root' disconnected from server. Details at (:CRSAGF00117:) {0:2:10} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_orarootagent_root.trc.
2025-12-10 15:20:00.754 [CRSD(7750)]CRS-8500: Oracle Clusterware CRSD process is starting with operating system process ID 7750
2025-12-10 15:20:02.799 [CSSDMONITOR(8062)]CRS-8500: Oracle Clusterware CSSDMONITOR process is starting with operating system process ID 8062
2025-12-10T15:20:03.584050+09:00
Errors in file /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc  (incident=1):
CRS-8503 [] [] [] [] [] [] [] [] [] [] [] []
Incident details in: /u01/app/grid/diag/crs/v19rac1/crs/incident/incdir_1/ocssd_i1.trc

2025-12-10 15:20:03.569 [OCSSD(3442)]CRS-8503: Oracle Clusterware process OCSSD with operating system process ID 3442 experienced fatal signal or exception code 6.
2025-12-10 15:20:06.262 [CRSD(7750)]CRS-0804: Cluster Ready Service aborted due to Oracle Cluster Registry error [PROC-23: Error in cluster services layer Cluster services error [ [3]]. Details at (:CRSD00111:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd.trc.
2025-12-10 15:20:06.851 [OCTSSD(8347)]CRS-8500: Oracle Clusterware OCTSSD process is starting with operating system process ID 8347
2025-12-10 15:20:06.920 [CSSDAGENT(8378)]CRS-8500: Oracle Clusterware CSSDAGENT process is starting with operating system process ID 8378
2025-12-10 15:20:07.390 [OCTSSD(8347)]CRS-2402: The Cluster Time Synchronization Service aborted on host v19rac1. Details at (:ctss_css_init1:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/octssd.trc.
2025-12-10 15:20:07.659 [OCSSD(8473)]CRS-8500: Oracle Clusterware OCSSD process is starting with operating system process ID 8473
2025-12-10 15:20:07.850 [EVMD(8497)]CRS-8500: Oracle Clusterware EVMD process is starting with operating system process ID 8497
2025-12-10 15:20:08.400 [OHASD(2085)]CRS-2878: Failed to restart resource 'ora.ctssd'
2025-12-10 15:20:08.842 [OCSSD(8473)]CRS-1713: CSSD daemon is started in hub mode
2025-12-10 15:20:10.728 [OCSSD(8473)]CRS-1707: Lease acquisition for node v19rac1 number 1 completed
2025-12-10 15:20:11.913 [OCSSD(8473)]CRS-1621: The IPMI configuration data for this node stored in the Oracle registry is incomplete; details at (:CSSNK00002:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc
2025-12-10 15:20:11.914 [OCSSD(8473)]CRS-1617: The information required to do node kill for node v19rac1 is incomplete; details at (:CSSNM00004:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc
2025-12-10 15:20:11.928 [OCSSD(8473)]CRS-1605: CSSD voting file is online: /dev/sdb1; details in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc.
2025-12-10 15:20:13.287 [OCSSD(8473)]CRS-1601: CSSD Reconfiguration complete. Active nodes are v19rac1 v19rac2 .
2025-12-10 15:20:15.059 [OCTSSD(9380)]CRS-8500: Oracle Clusterware OCTSSD process is starting with operating system process ID 9380
2025-12-10 15:20:15.381 [OCSSD(8473)]CRS-1720: Cluster Synchronization Services daemon (CSSD) is ready for operation.
2025-12-10 15:20:17.896 [OCTSSD(9380)]CRS-2407: The new Cluster Time Synchronization Service reference node is host v19rac2.
2025-12-10 15:20:17.897 [OCTSSD(9380)]CRS-2401: The Cluster Time Synchronization Service started on host v19rac1.
2025-12-10 15:20:18.928 [CRSD(9937)]CRS-8500: Oracle Clusterware CRSD process is starting with operating system process ID 9937
2025-12-10 15:20:23.082 [CRSD(9937)]CRS-1012: The OCR service started on node v19rac1.
2025-12-10 15:20:23.374 [CRSD(9937)]CRS-1201: CRSD started on node v19rac1.
2025-12-10 15:20:24.803 [ORAAGENT(10552)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 10552
2025-12-10 15:20:24.942 [ORAROOTAGENT(10566)]CRS-8500: Oracle Clusterware ORAROOTAGENT process is starting with operating system process ID 10566
2025-12-10 15:20:24.950 [ORAAGENT(10589)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 10589
2025-12-10 15:20:31.059 [ORAAGENT(11226)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 11226
2025-12-10 15:22:14.393 [ORAAGENT(11226)]CRS-5818: Aborted command 'res_attr_modified' for resource 'ora.ons'. Details at (:CRSAGF00113:) {1:56756:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc.
2025-12-10 15:22:32.392 [ORAAGENT(11226)]CRS-5014: Agent "ORAAGENT" timed out starting process "/u01/app/19.0.0/grid/opmn/bin/onsctli" for action "modify": details at "(:CLSN00009:)" in "/u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc"
2025-12-10 15:22:58.924 [ORAAGENT(13337)]CRS-8500: Oracle Clusterware ORAAGENT process is starting with operating system process ID 13337
2025-12-10 15:23:51.914 [OCSSD(8473)]CRS-1612: Network communication with node v19rac2 (2) has been missing for 50% of the timeout interval.  If this persists, removal of this node from cluster will occur in 14.300 seconds
2025-12-10 15:23:59.122 [OCSSD(8473)]CRS-1611: Network communication with node v19rac2 (2) has been missing for 75% of the timeout interval.  If this persists, removal of this node from cluster will occur in 7.090 seconds
2025-12-10 15:24:03.311 [OCSSD(8473)]CRS-1610: Network communication with node v19rac2 (2) has been missing for 90% of the timeout interval.  If this persists, removal of this node from cluster will occur in 2.900 seconds
2025-12-10 15:24:10.722 [OCSSD(8473)]CRS-1607: Node v19rac2 is being evicted in cluster incarnation 660845500; details at (:CSSNM00007:) in /u01/app/grid/diag/crs/v19rac1/crs/trace/ocssd.trc.
2025-12-10 15:24:20.938 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8390 msecs.
2025-12-10 15:24:23.809 [ORAAGENT(11226)]CRS-5818: Aborted command 'check' for resource 'ora.chad'. Details at (:CRSAGF00113:) {1:56756:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc.
2025-12-10 15:24:31.175 [ORAAGENT(11226)]CRS-5818: Aborted command 'check' for resource 'ora.ons'. Details at (:CRSAGF00113:) {1:56756:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc.
2025-12-10 15:24:45.738 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 7810 msecs.
2025-12-10 15:24:44.330 [ORAAGENT(11226)]CRS-5014: Agent "ORAAGENT" timed out starting process "/u01/app/19.0.0/grid/opmn/bin/onsctli" for action "check": details at "(:CLSN00009:)" in "/u01/app/grid/diag/crs/v19rac1/crs/trace/crsd_oraagent_grid.trc"
2025-12-10 15:24:56.302 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8430 msecs.
2025-12-10 15:24:58.873 [OCSSD(8473)]CRS-1601: CSSD Reconfiguration complete. Active nodes are v19rac1 .
2025-12-10 15:24:58.991 [OCTSSD(9380)]CRS-2407: The new Cluster Time Synchronization Service reference node is host v19rac1.
2025-12-10 15:25:01.364 [OHASD(2085)]CRS-8011: reboot advisory message from host: v19rac2, component: cssagent, with time stamp: L-2025-12-10-15:24:36.387
2025-12-10 15:25:01.365 [OHASD(2085)]CRS-8013: reboot advisory message text: oracssdagent is about to reboot this node due to loss of network connectivity.
2025-12-10 15:25:01.365 [OHASD(2085)]CRS-8011: reboot advisory message from host: v19rac2, component: cssmonit, with time stamp: L-2025-12-10-15:24:36.426
2025-12-10 15:25:01.366 [OHASD(2085)]CRS-8013: reboot advisory message text: oracssdmonitor is about to reboot this node due to loss of network connectivity.
2025-12-10 15:25:08.958 [CRSD(9937)]CRS-5504: Node down event reported for node 'v19rac2'.
2025-12-10 15:25:42.950 [CRSD(9937)]CRS-2773: Server 'v19rac2' has been removed from pool 'Generic'.
2025-12-10 15:25:42.981 [CRSD(9937)]CRS-2773: Server 'v19rac2' has been removed from pool 'ora.v19rac'.
2025-12-10 15:35:13.134 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 9810 msecs.
2025-12-10 15:35:26.139 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 8520 msecs.
2025-12-10 15:35:27.220 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8810 msecs.
2025-12-10 15:35:35.615 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 17210 msecs.
2025-12-10 15:35:48.313 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 8070 msecs.
2025-12-10 15:35:48.411 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8460 msecs.
2025-12-10 15:35:56.897 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 16650 msecs.
2025-12-10 15:35:56.992 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 17050 msecs.
2025-12-10 15:36:06.200 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 26230 msecs.
2025-12-10 15:36:21.639 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8230 msecs.
2025-12-10 15:36:30.447 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 7750 msecs.
2025-12-10 15:36:30.502 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8700 msecs.
2025-12-10 15:36:39.251 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 16550 msecs.
2025-12-10 15:36:39.312 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 17510 msecs.
2025-12-10 15:36:48.774 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 27000 msecs.
2025-12-10 15:36:52.951 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 8360 msecs.
2025-12-10 15:36:57.619 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 35830 msecs.
2025-12-10 15:37:02.264 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 17670 msecs.
2025-12-10 15:37:06.650 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 44820 msecs.
2025-12-10 15:37:11.026 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 26440 msecs.
2025-12-10 15:37:15.768 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 53970 msecs.
2025-12-10 15:37:26.688 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 8330 msecs.
2025-12-10 15:37:26.726 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 8690 msecs.
2025-12-10 15:37:35.731 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 17360 msecs.
2025-12-10 15:37:35.785 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 17820 msecs.
2025-12-10 15:37:44.498 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 26000 msecs.
2025-12-10 15:37:44.567 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 26600 msecs.
2025-12-10 15:37:53.638 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 35300 msecs.
2025-12-10 15:37:53.695 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 35730 msecs.
2025-12-10 15:38:02.062 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 44090 msecs.
2025-12-10 15:38:09.667 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 8980 msecs.
2025-12-10 15:38:10.899 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 52930 msecs.
2025-12-10 15:38:18.400 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 17720 msecs.
2025-12-10 15:38:19.569 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 61600 msecs.
2025-12-10 15:36:11.944 [ORAROOTAGENT(2911)]CRS-5818: Aborted command 'check' for resource 'ora.crsd'. Details at (:CRSAGF00113:) {0:7:24} in /u01/app/grid/diag/crs/v19rac1/crs/trace/ohasd_orarootagent_root.trc.
2025-12-10 15:36:13.870 [ORAROOTAGENT(2911)]CRS-5818: Aborted command 'check' for resource 'ora.ctssd'. Details at (:CRSAGF00113:) {0:7:24} in /u01/app/grid/diag/crs/v19rac1/crs/trace/ohasd_orarootagent_root.trc.
2025-12-10 15:37:28.874 [ORAROOTAGENT(2911)]CRS-5818: Aborted command 'check' for resource 'ora.gipcd'. Details at (:CRSAGF00113:) {0:0:2} in /u01/app/grid/diag/crs/v19rac1/crs/trace/ohasd_orarootagent_root.trc.
2025-12-10 15:38:27.115 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 26430 msecs.
2025-12-10 15:38:28.388 [OCSSD(8473)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 70420 msecs.

  

3. 原因:Windows 16GBマシンでのRAC構築は「無謀」だった

ログ解析の結果、原因は「Oracleのバグ」でも「ネットワーク設定ミス」でもなく、単純かつ残酷な 「物理的マシンスペックの不足」 であることが確定しました。

公式要件 vs 現実の割り当て

Oracle Grid Infrastructure 19c の公式推奨要件と、今回の環境を比較してみます。

項目公式推奨(Linux x86-64)今回の環境(1ノードあたり)判定
メモリ最小 8GB / 推奨 16GB以上6 GB× (致命的に不足)
Swap実メモリ依存(通常 8GB〜16GB)4 GB
CPU2コア以上2コア△ (ギリギリ)

メモリ 6GB の内訳と崩壊のシナリオ

ホストマシンが16GBの場合、Windows OS自体やブラウザ、常駐ソフトで最低 4GB は消費します。残る 12GB を 2台のVMで分けると、1台あたり 6GB が物理的な限界値です。

しかし、19c RAC が稼働するために必要なメモリを積み上げると、どうなるでしょうか。

  1. OS Kernel & User Space: 約 1 GB(最小構成でも)
  2. Grid Infrastructure (ASM, CSSD, etc): 約 2 GB 〜 3 GB
    • ASMインスタンス自体がSGAを持ちます。
  3. Oracle Database (SGA + PGA): 最小設定でも 2 GB 〜 3 GB
    • 初期化パラメータで絞っても、プロセスごとのオーバーヘッドがあります。

これらを合計すると、起動しただけで 5 GB 〜 7 GB を消費します。6GB の割り当てでは、起動直後から空きメモリ(Free Memory)はほぼゼロです。

この状態で DBCA を実行し、さらに負荷(Javaプロセス、データコピー、パラレル処理)がかかると、OSは必死にメモリを空けようとしてスワップ領域を使い始めます。ディスクI/Oはメモリより圧倒的に遅いため、システム全体の処理速度が数万分の一に低下し、「70秒間のフリーズ」 を引き起こしたのです。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

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

4. 対策:それでも動かすためのチューニング(悪あがき)

スペック不足は否めませんが、学習・検証用として「パフォーマンスは度外視して、とにかく動く環境を作りたい」という場合に有効な、省メモリ・安定化チューニングを実施しました。

① HugePages の導入(必須かつ効果絶大)

Linux 環境でメモリ制約の厳しい Oracle Database を使うなら、HugePages(ヒュージページ) は必須の設定です。

  • なぜ効くのか?:
    • 通常のメモリ管理(4KBページ)では、Oracleの巨大なSGA(数GB)を管理するために、OSは大量の「ページテーブル」を作成します。このページテーブル自体が数百MBのメモリを消費し、管理負荷(CPUオーバーヘッド)も高くなります。
    • HugePages(通常2MBページ)を使うと、ページ数が 1/512 に減ります。これにより、ページテーブル用のメモリ消費が激減し、CPU負荷も下がります。
    • さらに重要なのは、HugePages 上のメモリはスワップアウトされない(Lockされる) という点です。これにより、SGA領域がディスクに書き出されることによる急激なパフォーマンス劣化を防げます。

設定手順概要:

  1. 現在のSGAサイズを確認 (show parameter sga_target)。
  2. 必要なページ数を計算(例: SGA 3GB ÷ 2MB = 1536ページ + 余白)。
  3. /etc/sysctl.confvm.nr_hugepages = 1600 のように記述し、sysctl -p で反映。
  4. /etc/security/limits.conf で oracle ユーザーの memlock (ロック可能なメモリ量)を、物理メモリサイズ程度まで引き上げる。
  5. Oracleパラメータ use_large_pages = ONLY を設定して再起動(これによりHugePagesが確保できない場合はインスタンス起動に失敗するため、確実性が増す)。

② SGA/PGA の徹底的な縮小

物理メモリ 6GB の環境では、Oracle の自動メモリ管理(AMM)やデフォルト設定に任せると危険です。手動で極限まで小さく設定します。

設定例(19c 検証環境用):

  • sga_target: 3072 MB (3GB)
    • Grid Infrastructure と共存するため、物理メモリの半分以下に抑えます。HugePages に格納します。
  • pga_aggregate_target: 1024 MB (1GB)
    • PGA は HugePages に入らないため、ここが肥大化するとスワップの原因になります。
  • memory_target: 0
    • AMM(/dev/shm を使う方式)は HugePages と互換性がないため、必ず 0 にして無効化し、ASMM(SGA/PGA個別指定)を使用します。

OS領域として最低でも 1.5GB〜2GB は「聖域」として残るように計算してください。

③ vm.swappiness の調整

Linux カーネルがスワップを使いたがる傾向(swappiness)を抑制します。デフォルトの 6030 では、まだ物理メモリに空きがあってもスワップを使い始め、DBのレスポンスを悪化させる可能性があります。

# 現在値の確認
cat /proc/sys/vm/swappiness

# 一時的な変更(推奨値は環境によるが、DBサーバーなら1〜10程度)
sysctl -w vm.swappiness=10

/etc/sysctl.confvm.swappiness = 10 を記述して永続化します。これにより、「物理メモリを使い切るギリギリまでスワップしない」挙動になり、粘り強くなります。

5. まとめ:RAC構築はリソース計画から

今回のトラブルシューティングを通じて得られた教訓は以下の通りです。

  • CRS-1719 は「OSの悲鳴」: ログに ... not scheduled for ... が出たら、Oracleの設定を見直す前に、まず sar -rfreevmstat でメモリ枯渇とスワップ状況を疑うべきです。
  • 6GBでは茨の道: ホスト16GB環境でのRAC構築は、学習用とはいえ極めて不安定です。HugePages やパラメータ調整で「なんとか動く」状態にはできますが、パッチ適用などの重い処理には耐えられない可能性があります。
  • 結論: 快適な RAC 検証環境を作るなら、メモリ 32GB 以上のPCを用意するのが最短かつ最良の解決策です。メモリに余裕があれば、これらのトラブルの9割は遭遇せずに済みます。

もし、どうしても今の 16GB PCでRACを学びたい場合は、上記チューニングを施した上で、「一度に一つの操作しかしない」「GUIは使わない」「重いジョブは止める」といった運用上の工夫で乗り切ってください。その苦労もまた、リソース管理を学ぶ良い教材になるはずです。

本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

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

コメント

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