Oracle 資料庫的行為由六大核心配置檔案共同決定。本文系統梳理各檔案用途、關鍵參數、典型配置範例、修改生效方式、常見誤區,構建完整配置管理知識體系,支援自動化部署與故障快速定位。
| 檔案 | 典型路徑 | 作用域 | 修改生效 |
|---|---|---|---|
| /etc/profile | /etc/profile | OS 層級環境變數 | 重新登入 / source |
| oratab | /etc/oratab | 實例啟停註冊 | 即時 |
| init | $ORACLE_BASE/admin/ | 實例參數 | 動態參數即時,靜態參數重啟 |
| listener.ora | $ORACLE_HOME/network/admin | 監聽器配置 | lsnrctl reload |
| sqlnet.ora | $ORACLE_HOME/network/admin | 客戶端/伺服器網路參數 | 即時(新連線) |
| tnsnames.ora | $ORACLE_HOME/network/admin | 網路服務名解析 | 即時(新連線) |
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_SID=orcl
export ORACLE_TERM=vt100
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 中文環境建議:AMERICAN_CHINA.ZHS16GBK 或 AMERICAN_AMERICA.AL32UTF8
順序原則:被引用變數必須先定義(ORACLE_HOME 用到 ORACLE_BASE,故 ORACLE_BASE 在前)。
# 格式:SID:ORACLE_HOME:Y|N
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
# Y = dbstart/dbshut 管理啟停;N = 手動管理
:Y,配合 /etc/init.d/oracle 實現 OS 級自動啟停。關鍵參數分類:
| 類別 | 參數範例 | 說明 |
|---|---|---|
| 身分識別 | db_name=orcl, instance_name=orcl | 資料庫/實例名稱 |
| 控制檔 | control_files=(...ctl, ...ctl, ...ctl) | 多路徑多工,至少 2 份 |
| 排程作業 | job_queue_processes=10, job_queue_interval=60 | SNP 背景進程數與喚醒間隔 |
| 追蹤/告警目錄 | background_dump_dest, user_dump_dest, core_dump_dest | 建議置於獨立磁碟/ASM |
| UTL_FILE 目錄 | utl_file_dir=* 或具體路徑 | * 允許任意目錄(12c+ 建議用 Directory 物件) |
| 記憶體管理 | sga_target, pga_aggregate_target, memory_target (AMM) | 11g+ 推薦 AMM/ASMM |
| 相容性 | compatible=19.0.0 | 升級後調整,不可降級 |
| 現象 | 可能原因 | 檢查重點 |
|---|---|---|
| ORA-12154 TNS:could not resolve | tnsnames.ora 找不到別名 / 路徑錯誤 | TNS_ADMIN 環境變數、tnsping |
| ORA-12514 Listener does not know service | 服務未註冊 / SERVICE_NAME 拼寫錯 | lsnrctl services、SID_LIST 靜態註冊 |
| ORA-12541 No listener | 監聽器未啟動 / PORT 阻擋 | lsnrctl status、防火牆、HOST 解析 |
| 中文亂碼 | NLS_LANG 不匹配 | 客戶端/伺服器 NLS_LANG、資料庫字元集 |
| 連線緩慢 | DNS 解析 / SDU 大小 | HOST 用 IP、DEFAULT_SDU_SIZE |
$ORACLE_HOME/network/admin、/etc/oratab、init.ora 納入 Git,標記環境。HOST、SID、PORT。SQLNET.AUDIT 或 OS 層 auditd 監控關鍵檔案變更。tnsping、lsnrctl start、sqlplus 連線。掌握六大配置檔案的分工與交互,就能在安裝、遷移、升級、故障排查中游刃有餘,將配置管理從「玄學」轉為「工程」。