Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 重啟 Oracle 資料庫三大實戰方法:SQL*Plus、dbstart 與 lsnrctl 完整流程

編輯:關於 Linux

Oracle 資料庫服務異常時需重啟資料庫實例與監聽器。本文提供三種操作層級的完整流程:SQL*Plus 連線管理模式 (最標準)、$ORACLE_HOME/bin 直接執行 dbstart/lsnrctl (腳本自動化適用)、補充啟動順序說明 (先監聽器後實例)。

Oracle 重啟流程示意圖

方法一:SQL*Plus 互動式管理 (Oracle 9i/10g/11g/12c/19c 通用)

# 1. 切換至 oracle 用戶
su - oracle

# 2. 進入 SQL*Plus 無登入模式
sqlplus /nolog

# 3. 以 SYSDBA 連線
CONNECT / AS SYSDBA

# 4. 啟動資料庫
STARTUP

# 5. 若需關閉
SHUTDOWN IMMEDIATE

# 6. 退出 SQL*Plus
EXIT

# 7. 進入監聽器控制
lsnrctl

# 8. 啟動監聽器 (若已啟動可略過)
START

# 9. 退出監聽器
EXIT

方法二:直接執行 $ORACLE_HOME/bin 指令 (適合自動化腳本)

cd $ORACLE_HOME/bin
./dbstart     # 啟動資料庫實例 (讀取 oratab)
./lsnrctl start  # 啟動監聽器

方法三:root 直接呼叫 dbstart (需環境變數正確)

cd $ORACLE_HOME
dbstart
lsnrctl start

關鍵補充:啟動順序與環境變數

  1. 必須先啟動監聽器,再啟動資料庫實例,否則實例啟動後無法向監聽器註冊服務名
  2. ORACLE_HOME、ORACLE_SID、PATH 需正確設定 (通常在 oracle 用戶 .bash_profile 中)
  3. /etc/oratab 記錄實例與啟動標記 (Y/N),dbstart 依此決定啟動哪些實例

完整啟動流程範例 (含環境檢查)

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH

echo "Starting Listener..."
lsnrctl start

echo "Starting Database..."
sqlplus / as sysdba <

常見問題排查

  • ORA-01034/ORA-27101:共享記憶體段不存在,實例未啟動 → 檢查 ipcs -m、sysctl -p 核心參數
  • TNS-12541/12560:監聽器未啟動或埠衝突 → lsnrctl status、檢查 listener.ora、tnsnames.ora
  • 權限不足:確保 oracle 用戶對 $ORACLE_HOME、$ORACLE_BASE、資料檔目錄有讀寫權限
Copyright © Windows教程網 All Rights Reserved