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

Oracle 架構核心:Instance (實例) 與 Database (數據庫) 的本質區別與啟動掛載流程

     編輯:Oracle 資料庫基礎

一句話定義

  • Database (數據庫):物理文件集合 — 數據文件、控制文件、重做日志文件、參數文件、密碼文件等。**靜態存儲介質**。
  • Instance (實例):後台進程組 (PMON, SMON, DBWn, LGWR, CKPT, ARCn...)+ SGA (共享內存區):**動態運行實體**。

啟動三階段

  1. NOMOUNT:啟動實例 (進程+SGA),**未關聯任何數據庫文件**。
  2. MOUNT:實例讀取控制文件,關聯數據庫,**數據庫掛載完成,但未打開**,僅 DBA 可訪問。
  3. OPEN:打開數據文件/重做日志,**正常業務可訪問**。

關鍵特性

  • **一個實例同一時刻只能掛載/打開一個數據庫** (RAC 除外,多實例掛載同一數據庫)。
  • 實例啟動後若想切換數據庫,必須 **SHUTDOWN 實例 → 再 STARTUP 掛載新庫**。否則報 ORA-16169: database already mounted。
  • 數據文件可存放於:
    — 普通文件系統 (最常用)
    — ASM 磁盤組 (裸設備、高性能)
    — RAW 設備 (舊版)
    — 網絡存儲 (NFS 等)

形象類比

概念類比
Database硬盤上的 Excel 文件 (.xlsx)
Instance運行中的 Excel 進程 (EXCEL.EXE) + 內存緩存
MOUNTExcel 已打開文件,但處於「保護視圖」只讀模式
OPEN啟用編輯,可讀寫數據

實戰驗證

SQL> STARTUP NOMOUNT;
ORACLE instance started.
Total System Global Area  838860800 bytes
...
SQL> ALTER DATABASE MOUNT;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
-- 此時數據庫真正可用

總結

**Instance = 內存 + 進程 (大腦);Database = 文件 (倉庫)。** 只有大腦掛上倉庫 (MOUNT) 並打開大門 (OPEN),業務才能存取數據。理解此關係是排查啟動故障、配置 Data Guard、實施備份恢復的前提。

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