首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Linux 下 Oracle 10g/11g/19c 啟動與關閉標準流程:sqlplus、lsnrctl 與 shutdown 選項完整指南

     編輯:Oracle 資料庫基礎

環境準備

  • OS 帳號:oracle (屬於 dba 群組)
  • 環境變數:ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH 已在 .bash_profile 設定。

啟動流程

  1. 切換 oracle 使用者
    su - oracle
  2. 啟動 Listener
    $ORACLE_HOME/bin/lsnrctl start
  3. 啟動資料庫
    $ORACLE_HOME/bin/sqlplus /nolog
    SQL> CONNECT / AS SYSDBA
    -- 或指定帳號: CONNECT sys/password AS SYSDBA
    SQL> STARTUP
  4. 驗證啟動成功
    ORACLE instance started.
    Total System Global Area  205520896 bytes
    ...
    Database mounted.
    Database opened.

關閉流程

  1. 關閉資料庫
    sqlplus /nolog
    SQL> CONNECT / AS SYSDBA
    SQL> SHUTDOWN [OPTION]
  2. 關閉 Listener
    lsnrctl stop

SHUTDOWN 選項詳細對比 (由溫和至強制)

指令行為適用場景重啟耗時
SHUTDOWN NORMAL等所有使用者主動斷線/交易結束,不允許新連線計畫性維護、有充足時間最短 (乾淨關閉)
SHUTDOWN TRANSACTIONAL等進行中交易 Commit/Rollback,強制斷開 Session需快速關閉但保護交易完整性短
SHUTDOWN IMMEDIATE最常用:立即回滾未提交交易、釋放鎖、關閉檔案緊急維護、參數修改生效中 (含實例恢復)
SHUTDOWN ABORT瞬間終止,不做 Checkpoint、不切換 Log、不回滾系統當機、IMMEDIATE 卡住、極端情況最長 (啟動時執行實例恢復)

關閉成功訊息

Database closed.
Database dismounted.
ORACLE instance shut down.

常見問題排查

  • ORA-01031: insufficient privileges → 確認 OS 帳號屬於 dba 群組、使用 CONNECT / AS SYSDBA。
  • ORA-01109: database not open → 尚未執行 STARTUP 或處於 MOUNT 狀態。
  • Listener 啟動失敗 → 檢查 $ORACLE_HOME/network/admin/listener.ora、埠號衝突、防火牆、主機名解析。

自動化腳本範例 (systemd)

[Unit]
Description=Oracle Database
After=network.target

[Service]
Type=forking
User=oracle
Environment=ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
Environment=ORACLE_SID=ORCL
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
TimeoutSec=0

[Install]
WantedBy=multi-user.target
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved