Oracle 資料庫在 Linux/Unix 上正常運行高度依賴作業系統層面的環境變數。本文提供經生產環境驗證的 .bash_profile 標準配置模板,涵蓋核心路徑、庫路徑、字符集、NLS、Java、搜尋路徑,並解釋每項變數的作用與常見誤區。
# ============================================================ # Oracle Database Environment Settings # Generated for Oracle 11gR2/12c/19c on Linux x86-64 # ============================================================ # 1. 核心安裝路徑 (根據實際安裝調整) export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/product/11gR2/db export ORACLE_SID=ora8 export ORACLE_TERM=xterm # 2. 動態庫搜尋路徑 (關鍵:啟動實例、SQL*Plus、Listener 依賴) export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib export SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib # HP-UX 專用,Linux 可保留兼容 # 3. 命令搜尋路徑 (確保 sqlplus, lsnrctl, dbca, rman 等可直接呼叫) export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin # 4. Java 類路徑 (EM Database Express, XMLDB, JVM 組件需要) export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib # 5. 國際化與字符集 (關鍵:中文環境必須設定,避免亂碼) export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 替代方案 (舊系統/客戶端相容): # export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK # 6. 臨時目錄 (可選,避免 /tmp 空間不足) # export TMPDIR=$ORACLE_BASE/tmp # export TEMP=$ORACLE_BASE/tmp # 7. 診斷目錄 (ADR Base, 11g+) # export ADR_BASE=$ORACLE_BASE # ============================================================ # 載入完成提示 (可選) echo "Oracle Environment Loaded: ORACLE_SID=$ORACLE_SID, ORACLE_HOME=$ORACLE_HOME" # ============================================================
| 變數 | 作用 | 常見錯誤 | 正確示範 |
|---|---|---|---|
| ORACLE_BASE | Oracle 軟體基礎目錄 (含 admin, diag, product 等) | 設為 ORACLE_HOME | /opt/oracle |
| ORACLE_HOME | 具體版本安裝目錄 (含 bin, lib, network, rdbms) | 未設定、指向錯誤版本 | /opt/oracle/product/19c/dbhome_1 |
| ORACLE_SID | 資料庫實例標識 (單機) / 節點實例名 (RAC) | 大小寫錯誤、與服務名混淆 | orcl / ora8 / PROD1 |
| LD_LIBRARY_PATH | 動態連結器搜尋 .so 檔路徑 | 缺少 $ORACLE_HOME/lib、順序錯誤 | $ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib |
| NLS_LANG | 客戶端字符集語言環境 (格式: LANGUAGE_TERRITORY.CHARACTERSET) | 未設定導致中文亂碼、字符集與資料庫不匹配 | AMERICAN_AMERICA.AL32UTF8 (推薦) / SIMPLIFIED CHINESE_CHINA.ZHS16GBK |
| PATH | 可執行檔搜尋順序 | $ORACLE_HOME/bin 不在前導致呼叫系統舊版工具 | $ORACLE_HOME/bin:/usr/sbin:$PATH |