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

Oracle 資料庫優雅重啟 10 步驟標準作業程序 (SOP)

     編輯:Oracle 資料庫基礎

適用場景

計畫性維護窗口、參數調整生效、修補套用、效能基準測試前重啟。目標:零資料遺失、最短停機時間、可驗證。

10 步驟 SOP

  1. 停止應用層:通知業務單位、關閉中介軟體、排程器、批次作業,確保無新連線湧入。
  2. 停止 Listener:切斷新連線入口。
    $ lsnrctl stop
  3. 備份控制檔至 Trace:產生可讀的控制檔重建腳本,備災復原關鍵。
    SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
  4. 手動切換 Redo Log:確保記憶體中異動刷入線上日志,縮短後續恢復時間。
    SQL> ALTER SYSTEM SWITCH LOGFILE;
  5. 產生 Kill Session 腳本:避免長時間交易阻塞 SHUTDOWN IMMEDIATE。
    SET HEAD OFF FEEDBACK OFF NEWPAGE NONE
    SPOOL /backup/scripts/kill_all.sql
    SELECT 'ALTER SYSTEM KILL SESSION '''||SID||','||SERIAL#||''';'
    FROM V$SESSION WHERE USERNAME IS NOT NULL;
    SPOOL OFF
  6. 執行 Kill Session:
    SQL> @/backup/scripts/kill_all.sql
  7. 正常關閉資料庫:IMMEDIATE 模式回滾未提交交易、釋放鎖、同步資料檔。
    SQL> SHUTDOWN IMMEDIATE;
  8. 啟動 Listener:
    $ lsnrctl start
  9. 啟動資料庫:
    $ sqlplus /nolog
    SQL> CONNECT / AS SYSDBA
    SQL> STARTUP;
  10. 啟動應用層 & 驗證:檢查 Alert Log 無錯誤、應用連線正常、關鍵業務流程跑通。

關鍵細節補充

  • SHUTDOWN IMMEDIATE 會等待進行中交易回滾;若極端情況卡住,可改 SHUTDOWN ABORT 再 STARTUP (執行執行個體恢復),但會延長啟動時間。
  • Kill Session 腳本建議納入版控,定期演練。
  • RAC 環境需依序關閉/啟動各節點,或使用 srvctl stop/start database。

驗收清單

  • Alert Log 無 ORA-600/ORA-7445 等嚴重錯誤。
  • SELECT STATUS FROM V$INSTANCE; 回傳 OPEN。
  • 應用端連線池自動重連成功,業務 API 回應正常。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved