首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Oracle 11g 啟動常見錯誤排查:ORA-01031、ORA-00845 完整解決方案

     編輯:Java 綜合教學

案例背景

  • OS:Linux (RedHat 系列)
  • DB:Oracle 11.2.0.3
  • 症狀:sqlplus / as sysdba 執行 startup 報錯

錯誤一:ORA-01031 / ORA-01017 (權限/認證問題)

現象

startup 失敗,提示權限不足或認證失敗。

排查步驟

  1. 檢查 sqlnet.ora:
    # $ORACLE_HOME/network/admin/sqlnet.ora
    SQLNET.AUTHENTICATION_SERVICES = (ALL)  # 確保設為 ALL 或 NTS
  2. 驗證環境變數 (oracle 用戶):
    export ORACLE_SID=your_sid
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
  3. 確認用戶群組:
    id oracle
    # 確認屬於 dba, oinstall 等必要群組
  4. 重建密碼檔 (若上述無效):
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=your_password entries=5 force=y

錯誤二:ORA-00845: MEMORY_TARGET not supported on this system

現象

ORA-00845: MEMORY_TARGET not supported on this system

根因

Oracle 11g 啟用 AMM (Automatic Memory Management) 時,MEMORY_TARGET 需要 /dev/shm (共享記憶體檔案系統) 空間足夠。預設 /dev/shm = 實體記憶體 50%,若 MEMORY_TARGET 設定值超過此限制即報錯。

解決方案:擴大 /dev/shm

# 1. 查看當前大小
df -h /dev/shm

# 2. 臨時調整 (重開機失效),需 root 權限
mount -o remount,size=8G,nr_inodes=1000000,noatime,nodiratime /dev/shm

# 3. 永久生效:修改 /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=8G 0 0

# 4. 驗證
df -h /dev/shm
# Filesystem Size Used Avail Use% Mounted on
# tmpfs 8.0G 995M 7.1G 13% /dev/shm

驗證啟動

export ORACLE_SID=test0924
sqlplus / as sysdba
startup

# 成功輸出:
ORACLE instance started.
Total System Global Area 3340451840 bytes
...
Database opened.

後續參數檢查

SQL> show parameter mem

NAME                 TYPE        VALUE
------------------------------------ ----------- -----------------
memory_max_target    big integer 3200M
memory_target        big integer 3200M  # 應與 max 一致或更小
...

總結與預防

  1. 基礎功夫決定上限:熟悉 Oracle 架構、記憶體管理、權限模型
  2. 標準化部署清單:環境變數、目錄權限、核心參數、密碼檔、網路配置
  3. 監控 /dev/shm 使用率:納入日常巡檢,避免 AMM 失效
  4. 保留除錯指令:sqlplus -prelim、oradebug、alert.log 分析

延伸閱讀

  • Oracle 官方文檔:Memory Architecture、Authentication Methods
  • Linux 核心參數調優:kernel.shmmax、kernel.shmall
  • ASM (Automatic Storage Management) 環境下的記憶體規劃
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved