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

Oracle 資料庫啟動與關閉操作全流程指南

     編輯:Oracle 資料庫基礎

關閉前準備

  • 先關閉資料庫,再關閉 SQL*Net(Listener)。若先關 Listener,用戶會話即中斷。
  • 通知用戶排程維護,避免業務衝突。

步驟一:歸檔/清理舊 Trace 與 Log 檔案

  • 每次啟動實例會產生背景進程 Trace 檔(BACKGROUND_DUMP_DEST)與用戶 Trace 檔(USER_DUMP_DEST),檔名含進程 ID,不自動刪除。
  • 定期歸檔或刪除,釋放磁碟空間。
  • Listener 產生 LISTENER.LOG,亦需定期管理(lsnrctl status 查路徑)。

步驟二:重命名 ALERT LOG

  • 位於 BACKGROUND_DUMP_DEST,命名如 alert_SID.log。
  • 記錄啟動/關閉、Redo 切換、表空間變更、內部錯誤等關鍵事件。
  • 檔案增長極快,建議每次重啟前改名(如 alert_SID.log.20240101),Oracle 會自動建立新檔。可在資料庫 OPEN 狀態下改名。

步驟三:產生最新 CREATE CONTROLFILE 腳本

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

在 USER_DUMP_DEST 產生含完整 CREATE CONTROLFILE 語法的 Trace 檔(SID_PROCESSID.trc),供控制檔損壞或參數變更(如 MAXDATAFILES)時重建使用。

步驟四:預熱共享池——駐留常用 PACKAGE/PROCEDURE

PL/SQL 物件首次呼叫會載入 Shared Pool,預先駐留可提升啟動後效能:

ALTER PACKAGE appowner.add_client COMPILE;
EXEC DBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT', 'P');  -- P=Procedure, C=Cursor

分類駐留:

  1. 核心套件:SYS 所有套件、STANDARD、DBMS_SQL、DBMS_UTILITY、DIUTIL 等。
  2. 應用自訂核心套件。

查詢已駐留物件:

SELECT owner, name, type,
       source_size+code_size+parsed_size+error_size AS total_bytes
FROM dba_object_size
WHERE type = 'PACKAGE BODY'
ORDER BY 4 DESC;

啟動/關閉命令速查

模式SHUTDOWN 選項STARTUP 選項適用場景
正常SHUTDOWN NORMALSTARTUP等待所有會話斷開,執行檢查點
立即SHUTDOWN IMMEDIATESTARTUP回滾未提交交易,斷開會話,最常用
交易SHUTDOWN TRANSACTIONALSTARTUP等待活動交易完成,再關閉
中止SHUTDOWN ABORTSTARTUP緊急情況,下次啟動需執行實例恢復
限制SHUTDOWN IMMEDIATESTARTUP RESTRICT僅允許 RESTRICTED SESSION 使用者登入

常見注意事項

  • SHUTDOWN ABORT 後啟動會自動執行實例恢復(前滾/回滾),耗時較長。
  • 修改 SPFILE 參數後需 STARTUP FORCE 或 關閉/啟動 生效。
  • Data Guard 環境需依保護模式協調主備關閉順序。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved