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

Oracle 實例啟動關閉與控制文件多工管理實戰手冊

     編輯:Oracle 資料庫基礎

一、實例啟動與關閉命令全解析

1. 啟動模式參數詳解

STARTUP [NOMOUNT | MOUNT | OPEN] [FORCE] [PFILE=filename]
  • NOMOUNT:僅啟動實例(SGA + 背景進程),不掛載資料庫,適用於建庫、重建控制文件;
  • MOUNT:啟動實例並掛載資料庫(讀取控制文件),未打開數據文件,適用於備份恢復、修改歸檔模式;
  • OPEN:完整啟動(預設),實例啟動 → 掛載 → 打開資料庫,業務可正常訪問;
  • FORCE:強制終止現有實例後重新啟動,處理異常掛起場景;
  • PFILE:指定非預設參數文件路徑。

2. 關閉模式四大層級

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]
  • NORMAL(預設):等待所有用戶斷開、發出檢查點、同步數據/控制/日誌文件後關閉,最優雅但最慢;
  • TRANSACTIONAL:等待客戶端事務結束自動斷開連接,再執行 NORMAL 流程;
  • IMMEDIATE:取消當前 SQL、回滾未提交事務、自動斷開連接、執行 NORMAL 同步,最常用的緊急關閉方式;
  • ABORT:立即終止實例,不發檢查點、不同步文件,下次啟動需執行實例恢復,僅用於極端故障。

二、常用監控查詢腳本速查

需求SQL 腳本
顯示 SGA 尺寸SHOW SGA 或 SELECT * FROM V$SGA
運行中背景進程SELECT NAME FROM V$BGPROCESS WHERE PADDR != '00'
實例狀態SELECT STATUS FROM V$INSTANCE
初始化參數SELECT * FROM V$PARAMETER
物理文件清單SELECT * FROM V$CONTROLFILE; SELECT * FROM V$DATAFILE; SELECT * FROM V$LOGFILE
常用數據字典視圖ALL_OBJECTS, USER_OBJECTS, DBA_OBJECTS, USER_SOURCE, USER_SEGMENTS, USER_TAB_COLUMNS, USER_CONSTRAINTS, ALL_USERS

三、網路配置雙端必備

  • 服務端:配置 LISTENER.ORA;
  • 客戶端:配置 TNSNAMES.ORA。

四、控制文件多工化操作實戰

場景:單控制文件遷移為雙份冗余

  1. 關閉資料庫:SHUTDOWN IMMEDIATE
  2. OS 層複製:COPY 原控制文件 目標路徑(如 COPY E:\ORADATA\CONTROL01.CTL F:\CONTROLTEST.CTL)
  3. 修改參數:CONTROL_FILES = '原路徑', '新路徑'
  4. 啟動驗證:STARTUP PFILE=參數文件路徑

作用:任一控制文件完好即可支撐資料庫啟動,損壞文件從參數移除後重啟即可恢復服務。

五、控制文件全損重建流程

  1. STARTUP NOMOUNT PFILE=... 僅啟動實例;
  2. CREATE CONTROLFILE REUSE DATABASE ... RESETLOGS ... CHARACTER SET ZHS16GBK; 重建控制文件,指定日志組、數據文件、字符集;
  3. ALTER DATABASE OPEN RESETLOGS; 以重置日志模式打開;
  4. ALTER TABLESPACE TEMP ADD TEMPFILE ... REUSE; 重建臨時文件。

前提:擁有全部數據文件與線上日志文件。此流程是災難恢復的最後防線,建議定期演練並納入 Runbook。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved