首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g「shared memory realm does not exist」錯誤診斷與秒級解決

     編輯:Oracle 資料庫基礎

錯誤現象

使用 SQL*Plus 或應用程式連線 Oracle 10g 時出現:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory

SQL*Plus 連線錯誤畫面

根本原因

Oracle 資料庫實例未啟動(Instance Down)。此時僅有少量背景程序(如 `oracle` 進程)殘留,共享記憶體區(SGA)未建立,故連線失敗。

30 秒診斷法

方法一:任務管理器 / `ps` 觀察記憶體佔用

  • 正常啟動: `oracle` 進程佔用數百 MB 至數 GB(視 SGA 設定)。
  • 未啟動: `oracle` 進程僅佔用幾十 MB(僅啟動監聽或殘留進程)。

正常啟動記憶體佔用 關閉資料庫後記憶體佔用 記憶體佔用對比

方法二:檢查警示日誌

tail -f $ORACLE_BASE/diag/rdbms///trace/alert_.log

若無近期 `Starting ORACLE instance` 記錄,即未啟動。

標準啟動流程

# 1. 設定環境變數
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH

# 2. 以 SYSDBA 登入並啟動
sqlplus /nolog
SQL> CONN / AS SYSDBA
SQL> STARTUP

輸出依序顯示:

  1. `ORACLE instance started` —— 分配 SGA、啟動背景程序。
  2. `Database mounted` —— 掛載控制檔。
  3. `Database opened` —— 開啟資料檔、線上重做日誌,進入 OPEN 狀態。

常見誤區與補充

誤區正確認知
以為 Listener 啟動 = 資料庫啟動Listener 僅負責網路連線轉發,Instance 需單獨 STARTUP
Windows 服務 `OracleServiceORCL` 已啟動即代表資料庫開啟服務啟動僅建立 Instance 程序,仍需 `STARTUP` 開啟資料庫
直接 `sqlplus scott/tiger` 連不上就重裝先確認 Instance 狀態,再檢查 Listener、TNS、防火牆

自動化啟動腳本(Linux / Windows)

Linux (systemd) 服務單元:

[Unit]
Description=Oracle 10g Database
After=network.target

[Service]
Type=forking
User=oracle
Environment=ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
Environment=ORACLE_SID=orcl
ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME
ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME
TimeoutSec=0

[Install]
WantedBy=multi-user.target

Windows 批次檔:

@echo off
set ORACLE_SID=orcl
net start OracleServiceORCL
sqlplus /nolog @startup.sql
:: startup.sql 內容: CONN / AS SYSDBA; STARTUP; EXIT

結語

「shared memory realm does not exist」99% 是 Instance 未啟動。掌握觀察進程記憶體與標準 STARTUP 流程兩大核心技能,即可在 1 分鐘內定位並解決,避免無效排查網路、TNS、防火牆等外圍設定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved