首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

認識 Oracle 架構前必懂的兩大核心概念:資料庫 vs 實例

     編輯:Oracle 資料庫相關知識

一、資料庫

資料庫是資料的實體集合,儲存在 資料檔 中。邏輯上劃分為 表空間,每個表空間由一或多個資料檔組成,一個表空間只屬於一個資料庫。

表空間核心特性

特性說明
磁碟分配控制限制用戶在表空間可用空間
狀態屬性ONLINE / OFFLINE / READ ONLY / READ WRITE
備份恢復單位可針對單一表空間備份/恢復
擴展方式新增資料檔或調整現有檔案大小

常用查詢與操作

-- 查詢表空間狀態
SELECT tablespace_name, status FROM dba_tablespaces;

-- 查詢表空間與資料檔對應
SELECT tablespace_name, bytes, file_name FROM dba_data_files;

-- 修改表空間屬性 (SYSTEM/UNDO/TEMP 不可 OFFLINE)
ALTER TABLESPACE users READ ONLY;

-- 查詢用戶預設表空間
SELECT username, default_tablespace FROM dba_users;

-- 移動表至新表空間
ALTER TABLE emp MOVE TABLESPACE users;

二、實例

實例 = SGA (記憶體結構) + 背景進程。實例是存取資料庫的「程式」,啟動實例 → 掛載資料庫 → 開啟資料庫。一個實例同一時間只能開啟一個資料庫 (RAC 除外)。

SGA 主要組件

  • 共用池 : SQL/PLSQL 執行計畫、資料字典快取
  • 資料庫緩衝區快取 : 資料塊副本
  • 重做日誌緩衝區 : 變更向量暫存
  • 大池 / Java 池 / Streams 池 : 選用元件

關鍵背景進程

進程職責
DBWn髒緩衝區寫入資料檔
LGWR重做日誌緩衝區寫入線上日誌
CKPT更新檢查點資訊至控制檔/資料檔
SMON例程恢復、暫存段整理
PMON清理失敗進程資源
ARCn歸檔滿日誌組

圖解關係

+---------------------+
|      實例           |
|  +---------------+  |
|  |     SGA       |  |
|  +---------------+  |
|  |  背景進程     |  |
|  +---------------+  |
+----------+----------+
           | 掛載/開啟
           v
+---------------------+
|      資料庫         |
|  +---------------+  |
|  | 控制檔        |  |
|  | 資料檔        |  |
|  | 重做日誌檔    |  |
|  +---------------+  |
+---------------------+

必考知識點

  • 資料庫 = 檔案集合 (靜態);實例 = 記憶體 + 進程 (動態)。
  • STARTUP NOMOUNT 僅啟動實例;STARTUP MOUNT 掛載控制檔;STARTUP OPEN 開啟資料檔/日誌檔。
  • 表空間屬性變更、檔案增減、備份恢復皆屬資料庫層面操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved