Oracle 數據庫啟動需遵循嚴格順序:監聽器 → SQL*Plus → SYSDBA 連接 → 啟動實例。本文提供標準化四步操作流程、常見錯誤排查與自動化腳本。
ORACLE_HOME, ORACLE_SID, PATH)$ lsnrctl start
# 輸出示例:
# LSNRCTL for Linux: Version 19.0.0.0.0
# Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait...
# Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server01)(PORT=1521)))
$ sqlplus /nolog
SQL*Plus: Release 19.0.0.0.0
SQL>
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Database mounted.
Database opened.
SQL>
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
| 命令 | 階段 | 適用場景 |
|---|---|---|
startup | NOMOUNT → MOUNT → OPEN | 正常啟動 |
startup nomount | 僅 NOMOUNT | 創建數據庫、恢復控制文件 |
startup mount | NOMOUNT → MOUNT | 備份、恢復、啟用歸檔 |
startup open | NOMOUNT → MOUNT → OPEN | 等同 startup |
startup force | 強制關閉後啟動 | 實例掛起、異常關機恢復 |
startup restrict | OPEN 但限制連接 | 維護窗口、僅允許 DBA |
#!/bin/bash
# start_oracle.sh
# 放置於 /home/oracle/scripts/,添加執行權限
export ORACLE_SID=ORCL
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
echo "Starting Oracle Listener..."
lsnrctl start
echo "Starting Oracle Database..."
sqlplus / as sysdba <
| 錯誤現象 | 原因 | 解決 |
|---|---|---|
| ORA-01034: ORACLE not available | 實例未啟動 | 執行 startup |
| ORA-12541: TNS:no listener | 監聽器未啟動 | lsnrctl start |
| ORA-00845: MEMORY_TARGET not supported | /dev/shm 空間不足 | mount -o remount,size=4G /dev/shm |
| ORA-01157: cannot identify/lock data file | 數據文件缺失/離線 | ALTER DATABASE DATAFILE ... ONLINE |
| LRM-00109: could not open parameter file | SPFILE/PFILE 路徑錯誤 | 檢查 ORACLE_HOME/dbs 下文件 |
# 檢查實例狀態
sqlplus / as sysdba <<'EOF'
select instance_name, status, database_status from v$instance;
select name, open_mode from v$database;
EOF
# 檢查監聽器
lsnrctl status
# 檢查進程
ps -ef | grep -E "(pmon|smon|dbw|lgwr|ckpt)" | grep -v grep
SQL> shutdown immediate
SQL> exit
$ lsnrctl stop
遵循標準流程啟動 Oracle,配合環境變量腳本化,保障數據庫服務穩定可控。
ls -lih 解讀 Linux 檔案屬性完整指南:inode、類型、權限、連結數、擁有者、時間戳
Linux 建立 RPM 套件完整流程:目錄結構、Spec 檔編寫、打包與安裝驗證
Linux 系統 yum 資料庫損毀報錯「Fatal error, run database recovery」的極速修復
Ubuntu 安裝 ITDB 資產管理系統完整步驟:Apache + PHP + SQLite3 環境部署
Linux Vim 開啟 UTF-8 檔案顯示亂碼?四大編碼參數完整解析與修正
Linux 多網卡綁定 (Bonding/Teaming) 完整配置指南:mode=1 主備模式實戰